bash - 如何以安全的方式调用 "EDITOR"环境变量来打开/编辑文件?

标签 bash shell scripting editor

<分区>

有没有办法在 bash 脚本中使用 EDITOR 或 VISUAL 环境变量来使用用户选择的编辑器编辑给定文件?

最佳答案

您可以使用以下内容:

${VISUAL:-${EDITOR:-vi}} "${filename}"

这将使用 VISUAL 变量(如果已设置),否则将使用 EDITOR,如果两者均未设置,它将回退到 vi

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

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

请注意,此处未引用变量。不幸的是,这是必要的,因为 EDITORVISUAL 设置可以包含命令参数,因此需要支持分词

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

更新:颠倒了顺序,首先尝试 $VISUAL,然后是 $EDITOR,因为这似乎是最常见的设置(例如Mutt邮件客户端、git等)

关于bash - 如何以安全的方式调用 "EDITOR"环境变量来打开/编辑文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60461586/

相关文章:

linux - 如何使用 awk 忽略逗号?

linux - 如何删除空格后的每个字符?

bash - 'echo' 换行抑制

windows - 从 VBScript 中的函数返回引用

linux - 前台程序和后台程序有什么区别?

html - 如何从 linux 中的多个文件中删除特定行?

bash - 在 shell 中打印具有多行值的变量?

bash - 如何在 bash 脚本中分配传递到变量中的位置参数?

linux - bash:意外标记附近的语法错误 `|'

mac终端中的Bash osascript(AppleScript),顺序运行多个命令