在 bash 中,我可以这样做EDITOR=vim crontab -e
。我可以在 Fish shell 中获得类似的效果吗?
答案1
begin; set -lx EDITOR vim; crontab -e; end
答案2
不明白为什么这不起作用:
env EDITOR=vim crontab -e
这完全绕过了 shell。
答案3
这是从文档
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
使用 env 命令。
env SOME_VAR=1 command
您还可以在块中声明局部变量,这样就不会绕过 shell
begin
set -lx SOME_VAR 1
command
end
答案4
根据be
函数的定义,这可能会失败
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
为了使其正常工作:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
-S 或 --no-scope-shadowing 允许函数访问调用函数的变量。通常,函数内任何与调用函数中的变量同名的变量都会被“隐藏”,并且其内容与调用函数无关。