Почему не устанавливает работу-x в оценке в функции у рыбы?

Что я закончил, выполнение устанавливало HISTFILESIZE к 0 в .bashrc файл, как Drav Sloan сказал в комментариях.

[...]
HISTFILESIZE=0
[...]

3
31.01.2015, 17:50
2 ответа

То же самое происходит в более простой форме:

function trythis
     set -x foo bar
end

Если вы сейчас запустите Trythis и ECHO $ ​​foo , он тоже не устанавливается. Это потому, что Fish's -x само по себе не изменяет объем переменной, которая по умолчанию локальная к функции, если она уже не существует во всем мире или универсально.

Попробуйте:

  eval (echo 'set -gx FOO 1;') 

где G для глобального. Это делает переменную работу как обычный POSIX EXPORT значение ED. Интересно, что он работает так же с Eval , поскольку он будет только с простой набором ; Если вы используете эту строку SANS g прямо на командной строке $ foo , поэтому EVAL и замена процесса () Не ввел новый объем или подставку, а при выполнении этого способа в функции применяется объем функции.

7
27.01.2020, 21:08

Вам нужно будет дать присваимую команду Set . Без этого область по умолчанию локально для функции. См. Раздел «Рыб» Рыбное раздел на переменные среды для правил по умолчанию для переменной Scoping

Попробуйте SET -GX FOO .

7
27.01.2020, 21:08

Теги

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