在bash脚本中导出内置变量

时间:2016-02-02 10:23:16

标签: bash shell built-in

这可能是一个微不足道的问题,但在shell脚本中使用内置变量的正确方法是什么?例如,如果我想编写一个打开默认文本编辑器的脚本,该编辑器在$ EDITOR中指定。只是使用

export EDITOR

无济于事。我发现定义EDITOR变量有助于解决这个问题:

#!/bin/bash    
export EDITOR=vim
$EDITOR

以上方法可行,但是有没有一种方法可以在不定义变量的情况下导出变量?提前谢谢。

1 个答案:

答案 0 :(得分:1)

EDITOR不是“内置”变量,您可以随时将其导出(即使其成为环境变量)。这里没什么神奇的。虽然bash在某些情况下解释这个变量是正确的,但是当他们想要启动编辑器时应用程序访问这个变量是很常见的,所以在实践中,EDITOR 通常会被导出。例如,我在.zshrc和.bashrc中有一行

export EDITOR=nano

问题:您可以导出带有值的变量,如下所示

export EDITOR=

但我不知道你会从中获得什么。

如果您只想确保您的shell脚本和所有后代进程都设置了EDITOR,那么常见的习惯用法是

: ${EDITOR:=vim}
export EDITOR

如果脚本的用户没有定义此变量,则在此处设置 - 您只需要两行,因为bash语法不允许将其合并为一个。