В оболочке Korn (другое название - POSIX) можно выполнять подстановку команд.
При подстановке оболочка выполняет указанную команду в среде подоболочки и заменяет команду на ее вывод. Для подстановки команд в оболочке Korn (POSIX) выполните следующие действия:
$(команда)
или воспользуйтесь обратными кавычками:
`команда`
Примечание: Хотя обратные кавычки распознаются оболочкой ksh, в стандартах XPG4 и POSIX они считаются устаревшими. В этих стандартах рекомендуется применять в приложениях формат $(команда).
Оболочка подставляет команду, выполняя команду в среде подоболочки, и заменяя ее (текст команды и окружающие его символы $( ) или обратные кавычки) на полученный стандартный вывод, удаляя при этом все символы новой строки в конце вывода.
В следующем примере символы $( ), в которые заключена команда, указывают, что выполняется подстановка для команды whoami:
echo Меня зовут: $(whoami)
Ту же подстановку можно выполнить и по-другому:
echo Меня зовут: `whoami`
В обоих случаях вывод для пользователя dee будет следующим:
Меня зовут: dee
Можно подставлять и арифметические выражения, заключая их в круглые скобки. Например, команда:
echo В одном часе $((60 * 60)) секунд
В одном часе 3600 секунд
При подстановке команд оболочка Korn (POSIX) удаляет все конечные символы новой строки. Например, если текущий каталог содержит файлы файл1, файл2 и файл3, то команда:
echo $(ls)
удалит символы новой строки и создаст следующий вывод:
файл1 файл2 файл3
Если вы хотите сохранить символы новой строки, укажите команду в двойных кавычках (" "):
echo "$(ls)"