这可能是一个微不足道的问题,但在shell脚本中使用内置变量的正确方法是什么?例如,如果我想编写一个打开默认文本编辑器的脚本,该编辑器在$ EDITOR中指定。只是使用
export EDITOR
无济于事。我发现定义EDITOR变量有助于解决这个问题:
#!/bin/bash
export EDITOR=vim
$EDITOR
以上方法可行,但是有没有一种方法可以在不定义变量的情况下导出变量?提前谢谢。
答案 0 :(得分:1)
EDITOR
不是“内置”变量,您可以随时将其导出(即使其成为环境变量)。这里没什么神奇的。虽然bash在某些情况下解释这个变量是正确的,但是当他们想要启动编辑器时应用程序访问这个变量是很常见的,所以在实践中,EDITOR
通常会被导出。例如,我在.zshrc和.bashrc中有一行
export EDITOR=nano
问题:您可以导出带有空值的变量,如下所示
export EDITOR=
但我不知道你会从中获得什么。
如果您只想确保您的shell脚本和所有后代进程都设置了EDITOR,那么常见的习惯用法是
: ${EDITOR:=vim}
export EDITOR
如果脚本的用户没有定义此变量,则在此处设置 - 您只需要两行,因为bash语法不允许将其合并为一个。