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).