Какие кодировки символов поддерживаются posix?

Проблема в том, что pipe (|) - это "мета" команда, выполняемая оболочкой, и она соединяет две разные команды. Так ls -1 | tail -1 выполняет две команды (ls и tail) и использует shell-конструкцию (|) для соединения с двумя. (поэтому ваш заголовок a command inside a variable неверен, так как ваша проблема на самом деле multiple commands inside a single variable)

В любом случае, решением является разбор/исполнение вашей команды с помощью shell:

f="ls -1 | tail -1"
sh -c "${f}"

В качестве альтернативы можно также использовать eval, который работает без создания нового процесса shell:

f="ls -1 | tail -1"
eval "${f}"
11
12.06.2016, 16:00
0 ответов

Теги

Похожие вопросы