Доповнення до прийнятої відповіді:
Хоча я, як правило, погоджуюся з відповіддю @ l0b0 тут, я підозрюю, що розміщення оголених задників у списку "найгіршого до найкращого" є частково результатом припущення, яке $(...)
є повсюдно. Я усвідомлюю, що питання задає Bash, але є багато випадків, коли Bash, як виявляється, означає /bin/sh
, що, можливо, не завжди є повною оболонкою Bourne Again.
Зокрема, звичайна оболонка Борна не знатиме, що з цим робити $(...)
, тому сценарії, які стверджують, що сумісні з нею (наприклад, через #!/bin/sh
лінію shebang), швидше за все, недобре поводяться, якщо ними насправді керує "справжній" /bin/sh
- це особливий інтерес, коли, скажімо, виробляють скрипти init або пакують попередні та пост-скрипти, і вони можуть висадити їх у дивному місці під час встановлення базової системи.
Якщо щось із цього звучить як щось, що ви плануєте зробити з цією змінною, вкладення, мабуть, викликає менше занепокоєння, ніж те, що сценарій насправді передбачувано працює. Коли це досить простий випадок, а портативність викликає занепокоєння, навіть якщо я очікую, що сценарій зазвичай запускається в системах, де /bin/sh
знаходиться Bash, я часто схильний використовувати посилання з цієї причини з кількома призначеннями замість того, щоб вкладати.
Сказавши все це, повсюдність оболонок, які реалізують $(...)
(Bash, Dash, та ін.), Залишає нам гарне місце для того, щоб дотримуватися гарнішого, легшого в гнізді та останнім часом кращого синтаксису POSIX у більшості випадків, для всі причини @ l0b0 згадує.
Убік: це також періодично з’являється на StackOverflow -