Наскільки я розумію, що більш сучасний $(...)синтаксис заміни команд віддається перевагу над `синтаксисом, що базується на старій основі, через легше і менш схильне до помилок синтаксис та уникнути помилок.
Крім того, здається, що більшість /bin/shтипів снарядів в сучасному режимі використовують підтримку $(…):
- баш
- ash (і тому BusyBox, так що найбільше вбудований Linux)
- тире
- FreeBSD / бін / ш
І $(…)визначається IEEE 1003.1.
Тому у мене є 2 дуже пов'язаних питання:
- Чи є якась причина використовувати `у новій розробці скриптів оболонки, якщо ви не знаєте про конкретну стару систему, над якою буде потрібно запускати сценарій?
- Чи є якась причина не навчати студентів програмування UNIX просто писати
$(...)та обговорювати`лише як застарілий варіант, з яким вони, можливо, зіткнуться, якщо читатимуть сценарії оболонок інших розробників (і, можливо, знадобляться, якщо вони працюють із дійсно старою системою чи нестандартною з якоїсь причини)?
$()- shift + 4,9, shift + 0 - 5 натискань клавіш;
`...`. Він призначений для зворотної переносимості лише з оболонкою Bourne (як у оболонки Bourne^(так само, як|) для зворотної переносимості з оболонкою Thomson). Однак зауважте, що(t)cshцього немає$(...)(але використовувати їх чи викладати їх також не має сенсу).