Mam kilka starych skryptów, które próbuję zaktualizować. Część kodu skraca się do:
export X=`(echo "abc"; echo "def")`
echo $X
co daje oczekiwany wynik:
abc def
Teraz Internet mówi mi, $()że nie mogę użyć backsticksa, ale kiedy próbuję:
export X=$((echo "abc"; echo "def"))
X nie jest ustawiony i pojawia się błąd:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
Co ja robię źle?
`...`i tak$(...)rozpocząć podpowłokę, więc wewnętrzna(...)nie jest potrzebna (marnowanie procesu).$( (...); (...) )Potrzebowałbyś miejsca w takich rzeczach, jak na przykład (gdzie mogą być potrzebne wewnętrzne podpowłoki).