Как и в другом недавнем ответе, который я опубликовал , разбиение слов происходит слишком поздно, чтобы инициировать перенаправление (, но не слишком поздно, чтобы повлиять на перенаправление ).
Вы можете запустить команду, используя eval
, как предложено в другом ответе в связанном посте, или используя bash -c "$*"
, при этом вам все равно придется указывать всю командную строку, включая перенаправления.
Хотя, если вы не хотите заключать команды в кавычки, можно установить-nv
(noexec
и verbose
), чтобы bash не запускал команды, а просто печатал их. Итак, вместо обертки run
в начале скрипта делаем:
[[ $DRY_RUN = yes ]] && set -nv
Это можно сделать с помощью ботан -диктовки:
SPEECH="$(nerd-dictation begin --timeout=1.0 --output=STDOUT)"