我正在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的值时,它的末尾有一个回车($'r'
(。因此,REALSCRIPT变量的值现在是:
/opt/lsas/lsas_datenbank/tools/3rd_Party/ettoolsr/sh/dbSchemaSetup.sh
当echo $REALSCRIPT
时,r
被echo
解释为回车,意思是:将光标移动到行的开头。结果,视觉输出是"0"/opt/lsas/lsas_datenbank/tools/3rd_Party/ettools";但在开头用"0"重写/sh/dbSchemaSetup.sh";。
最佳选项是防止r
被包括在对TOOLBOX_ROOT的分配中。
第二个最好的选择是在任务完成后立即删除它,比如:
TOOLBOX_ROOT=${TOOLBOX_ROOT/%$'r'/}
这将从该变量的末尾移除任何滑架返回。