Linux 在bash中打开默认文本编辑器?
我在写shell脚本时遇到了一个问题。是否有办法使用用户指定的文本编辑器打开文件?用户选择的编辑器应位于Linux 在bash中打开默认文本编辑器?,linux,bash,shell,Linux,Bash,Shell,我在写shell脚本时遇到了一个问题。是否有办法使用用户指定的文本编辑器打开文件?用户选择的编辑器应位于$editor中,但您仍必须选择一个正常的默认编辑器 "${EDITOR:-vi}" file.txt Ignacio是正确的(尽管可以说,后备方案应该是ed,POSIX要求它存在,尽管它基本上只对老员工有用) 如果您正在考虑使用图形编辑器,xdg open file.txt就是您想要的。注意:xdg open file.xml很可能会在Web浏览器中打开。 所以,试试看 您可能想做更多的回
$editor
中,但您仍必须选择一个正常的默认编辑器
"${EDITOR:-vi}" file.txt
Ignacio是正确的(尽管可以说,后备方案应该是ed
,POSIX要求它存在,尽管它基本上只对老员工有用)
如果您正在考虑使用图形编辑器,
xdg open file.txt
就是您想要的。注意:xdg open file.xml
很可能会在Web浏览器中打开。
所以,试试看
您可能想做更多的回退,例如:${EDITOR:-${VISUAL:-vi}}那么
${FCEDIT:-${VISUAL:-${EDITOR:-vi}}}
呢?对包含ed
的$EDITOR
给予视觉偏好似乎是个好主意$FCEDIT
是ksh
的环境变量(可能仍然是),其中fc
命令用于访问历史;它也被bash
识别。还有什么更合适的吗DEFAULTEDITOR=“`command-v nano>/dev/null 2>&1&&echo'nano'| | echo'vi'”&&echo“${FCEDIT:-${VISUAL:-${EDITOR:-$DEFAULTEDITOR}}}}”和“${FCEDIT:-${VISUAL:${EDITOR:-$DEFAULTEDITOR}}}}”file.txt
小心:有些用户会将编辑器设置为一个可以自动监控的程序,您的脚本将无法轻松地等待它们完成。@williampersell为什么会有人这样做?你能给我一个合适的场景吗?@kraxor,我会说这从来都不合适,但有些人会做疯狂的事情。有人想要一个生成新窗口的gui编辑器,这并不罕见。POSIX也需要vi
,不是吗?或者这只是POSIX的用户可移植性实用程序选项,而不是ed
。但是+1用于提及ed
。在中对环境变量POSIX2_-UPE
(功能的旧名称是User Portability Extension,UPE)的讨论中,有一个UPU中的功能列表:“User Portability utilities选项中的实用程序列表如下:bg
,ex
,fc
,fg
,作业
,更多
,谈话
,vi
。因此,从理论上讲,如果您有fc
命令,那么还应该有vi
可用。
# select your default sensible-editor from all installed editors, or not.
select-editor
# Open Default Text Editor
sensible-editor file.xml