Bash 如何调用;编辑「;环境变量以安全的方式打开/编辑文件?

Bash 如何调用;编辑「;环境变量以安全的方式打开/编辑文件?,bash,shell,scripting,editor,Bash,Shell,Scripting,Editor,有没有一种方法可以使用bash脚本中的编辑器或可视环境变量来使用用户选择的编辑器编辑给定文件?您可以使用以下方法: ${VISUAL:-${EDITOR:-vi}} "${filename}" 如果设置了VISUAL变量,则将使用该变量,否则EDITOR,如果两者都未设置,则将返回到vi 如果愿意,您可以使用不同的回退。特别是,基于Debian的发行版通常会提供一个系统管理员可以控制的版本,以将系统范围内的默认编辑器设置为回退 vi通常无处不在,因此它可能是一个合适的默认值 注意,变量在这里没

有没有一种方法可以使用bash脚本中的编辑器或可视环境变量来使用用户选择的编辑器编辑给定文件?

您可以使用以下方法:

${VISUAL:-${EDITOR:-vi}} "${filename}"
如果设置了
VISUAL
变量,则将使用该变量,否则
EDITOR
,如果两者都未设置,则将返回到
vi

如果愿意,您可以使用不同的回退。特别是,基于Debian的发行版通常会提供一个系统管理员可以控制的版本,以将系统范围内的默认编辑器设置为回退

vi
通常无处不在,因此它可能是一个合适的默认值

注意,变量在这里没有引号。不幸的是,这是必要的,因为
编辑器
可视化
设置可能包含命令参数,因此需要支持分词

例如,可以使用
EDITOR=“emacs-nw”
强制在终端(而不是窗口系统)上使用emacs,或者使用
EDITOR=“vim-u$HOME/.vim/custom vimrc”
让vim在由外部程序启动时使用自定义配置


更新:颠倒顺序,先尝试
$VISUAL
,然后尝试
$EDITOR
,因为这似乎是最常见的设置(例如Mutt mail client、git等)。

这是否回答了您的问题?是否建议先尝试视觉效果?作为一名开发人员,您的期望是什么?@wesm但我也见过一些程序首先尝试
$EDITOR
。我想现在很少有
$VISUAL
甚至设置。。。当它是时,它通常设置为与
$EDITOR
@wesm相同实际上,只是在我的答案中颠倒了顺序。现在想想看,
$VISUAL
首先更有意义。另外,这也是
mutt
git
所做的,所以我相信这些工具的作者决定使用什么。酷。感谢您的验证。在zsh上,包括一个
=
以启用分词:
${=VISUAL:-${EDITOR:-vi}