Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在bash中打开默认文本编辑器?_Linux_Bash_Shell - Fatal编程技术网

Linux 在bash中打开默认文本编辑器?

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浏览器中打开。 所以,试试看 您可能想做更多的回

我在写shell脚本时遇到了一个问题。是否有办法使用用户指定的文本编辑器打开文件?

用户选择的编辑器应位于
$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