如何以安全的方式将 "EDITOR" 环境变量调用到 open/edit 文件?
How to invoke "EDITOR" environment variable to open/edit file, in a secure way?
有没有办法在 bash 脚本中使用 EDITOR 或 VISUAL 环境变量来使用用户选择的编辑器编辑给定文件?
您可以使用以下内容:
${VISUAL:-${EDITOR:-vi}} "${filename}"
如果已设置,这将使用 VISUAL
变量,否则将使用 EDITOR
,如果两者均未设置,它将回退到 vi
.
如果您愿意,可以使用不同的后备方案。特别是,基于 Debian 的发行版通常会附带一个 binary named editor
,系统管理员可以控制它以将系统范围的默认编辑器设置为后备...
vi
通常无处不在,因此它可能是一个合适的默认值。
请注意,此处未引用变量。不幸的是,这是必要的,因为 EDITOR
或 VISUAL
设置可以包含命令参数,因此需要支持 word splitting。
例如,可以使用 EDITOR="emacs -nw"
强制在终端上使用 Emacs(而不是 window 系统),或者 EDITOR="vim -u $HOME/.vim/custom-vimrc"
使 Vim由外部程序启动时使用自定义配置。
更新: 颠倒顺序先尝试 $VISUAL
,然后 $EDITOR
,因为这似乎是最常见的设置(例如 Mutt 邮件客户端, git, 等等)
有没有办法在 bash 脚本中使用 EDITOR 或 VISUAL 环境变量来使用用户选择的编辑器编辑给定文件?
您可以使用以下内容:
${VISUAL:-${EDITOR:-vi}} "${filename}"
如果已设置,这将使用 VISUAL
变量,否则将使用 EDITOR
,如果两者均未设置,它将回退到 vi
.
如果您愿意,可以使用不同的后备方案。特别是,基于 Debian 的发行版通常会附带一个 binary named editor
,系统管理员可以控制它以将系统范围的默认编辑器设置为后备...
vi
通常无处不在,因此它可能是一个合适的默认值。
请注意,此处未引用变量。不幸的是,这是必要的,因为 EDITOR
或 VISUAL
设置可以包含命令参数,因此需要支持 word splitting。
例如,可以使用 EDITOR="emacs -nw"
强制在终端上使用 Emacs(而不是 window 系统),或者 EDITOR="vim -u $HOME/.vim/custom-vimrc"
使 Vim由外部程序启动时使用自定义配置。
更新: 颠倒顺序先尝试 $VISUAL
,然后 $EDITOR
,因为这似乎是最常见的设置(例如 Mutt 邮件客户端, git, 等等)