Tôi có một số kịch bản cũ mà tôi cố gắng cập nhật. Một số mã ngưng tụ để:
export X=`(echo "abc"; echo "def")`
echo $X
cung cấp đầu ra dự kiến:
abc def
Bây giờ internet cho tôi biết backticks $()là những gì tôi cần sử dụng, nhưng khi tôi thử:
export X=$((echo "abc"; echo "def"))
X không được đặt và tôi gặp lỗi:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
Tôi đang làm gì sai?
`...`và$(...)bắt đầu một subshell bằng mọi cách, vì vậy(...)không cần thiết bên trong (lãng phí một quá trình). Bạn sẽ cần không gian trong những thứ như$( (...); (...) )ví dụ (nơi có thể cần đến các lớp con bên trong).