Это намного проще. Единственная проблема состоит в том, что обход оболочки запрещает любые пользовательские команды рыбы, которые, вероятно, заблокированы в вашей мышечной памяти.
JohnMetta
Я видел это и в документах, но почему же не работает следующее? env SOME_VAR=1 echo $SOME_VAR
-S или --no-scope-shadowing позволяет функции получать доступ к переменным вызывающих функций. Обычно любые переменные внутри функции, которые имеют то же имя, что и переменные из вызывающей функции, являются «затененными», и их содержимое не зависит от вызывающей функции.
set -lx date '12/04/2012'
begin; set -lx date '12/04/2012'; ruby -e 'puts ENV["date"]'; end
env SOME_VAR=1 command
Не понимаю, почему это не должно работать:
env EDITOR=vim crontab -e
это полностью обходит оболочку.
источник
env SOME_VAR=1 echo $SOME_VAR
Это из документации
Используйте команду env.
Вы также можете объявить локальную переменную в блоке, и это не обойдет оболочку
источник
в зависимости от определения
be
функции, это может не сработатьДля того, чтобы это работало:
Пожалуйста, смотрите объяснение опции --no-scope-shadowing
источник