Bash:忽略行首的空格

Bash:忽略行首的空格

我只是想问一下美容方面的问题。

我导出了一些变量,.bashrc如下所示:

export LD_LIBRARY_PATH=/usr/local/matlab/bin/glnxa64:\
$FASTNET_INSTALL_PATH/lib:$EGRINGERANATOOLS/lib:\
$LD_LIBRARY_PATH

但我习惯于缩进命令开始后的行以便于查看,例如:

export LD_LIBRARY_PATH=/usr/local/matlab/bin/glnxa64:\
  $FASTNET_INSTALL_PATH/lib:$EGRINGERANATOOLS/lib:\
  $LD_LIBRARY_PATH

但如果我这样做,我会收到如下错误:

-bash: export: `~/fastnet/install/lib:~/Documents/D3PD/EgRingerAnaTools/lib:': not a valid identifier

有没有办法按照我的需要缩进这些行?

谢谢!

答案1

您可以创建这样的函数......

setpath() {
    oldIFS=$IFS; IFS=":"
    var=$1; shift; eval "$var=\$*; export $var"
    IFS=$oldIFS; unset oldIFS
}

setpath LD_LIBRARY_PATH \
    /usr/local/matlab/bin/glnxa64  \
    "$FASTNET_INSTALL_PATH/lib"    \
    "$EGRINGERANATOOLS/lib"        \
    "$LD_LIBRARY_PATH"             ;

(我在我的 ~/.profile 中使用了这个函数,因此它被编写为与读取该文件的任何 shell 兼容,包括 sh、ksh、bash、zsh……如果用纯 Bash 编写的话会更短。)

相关内容