Linux 设置变量

Linux setting variables

我是 运行 Linus 的 shell 脚本,我有一个意外的行为。

bash-4.2$ echo $TOOLBOX_ROOT
/opt/lsas/lsas_datenbank/tools/3rd_Party/ettools

bash-4.2$ export REALSCRIPT="$TOOLBOX_ROOT/sh/dbSchemaSetup.sh"
bash-4.2$ echo $REALSCRIPT
/sh/dbSchemaSetup.shbank/tools/3rd_Party/ettools

看起来它并没有连接两个字符串,而是在开头附加数据。

有什么建议吗?

此致

当设置TOOLBOX_ROOT的值时,它的末尾有一个回车return($'\r')。结果,REALSCRIPT 变量的值现在是:

/opt/lsas/lsas_datenbank/tools/3rd_Party/ettools\r/sh/dbSchemaSetup.sh

...而当你echo $REALSCRIPT时,\recho解释为回车return,意思是:将光标移动到线。结果,视觉输出为“/opt/lsas/lsas_datenbank/tools/3rd_Party/ettools”,但在开头被“/sh/dbSchemaSetup.sh”覆盖。

最好的选择是防止 \r 包含在对 TOOLBOX_ROOT 的赋值中。

second-best 选项是在分配后立即将其删除,例如:

TOOLBOX_ROOT=${TOOLBOX_ROOT/%$'\r'/}

... 这将从该变量的末尾删除任何回车 return。