44
widzę w bashu dwie różne formy, które wydaje się zrobić to samo:
`some command`
i
$(some command)
Jaka jest różnica między nimi, a kiedy należy używać każdego z nich?
widzę w bashu dwie różne formy, które wydaje się zrobić to samo:
`some command`
i
$(some command)
Jaka jest różnica między nimi, a kiedy należy używać każdego z nich?
Nie ma różnicy semantycznej. Składnia zwrotna to starsza i mniej wydajna wersja. Zobacz man bash
, punkt "Zastępowanie poleceń".
Jeśli twoja powłoka obsługuje składnię $()
, wolą ją, ponieważ może być zagnieżdżona.
Widzę, że można również zagnieżdżać. Na przykład: '\' echo \\ 'foo \\' \ '' –
@MishaMoroshko: Wyrażenia takie jak '\ echo \' foo \ '\' (w przeciwieństwie do '$ (echo $ (foo)) Działają ogólnie ze względu na nieodłączną niejednoznaczność, ponieważ każde "\" może być otwierane lub zamykane. Może działać w szczególnych przypadkach ze względu na szczęście lub specjalne funkcje. – thiton
Istnieje różnica semantyczna: składnia zwrotna obsługuje odwrotne ukośniki w inny i nieoczywisty sposób. Zobacz: http://mywiki.wooledge.org/BashFAQ/082 – benkc