Bash使用变量从脚本运行脚本

时间:2017-08-17 08:40:49

标签: linux bash shell

我正在尝试使用变量从bash脚本运行bash脚本。

变量是在解析的CSV之前分配的,当我回显它时,另一个脚本的路径看起来没问题。当我尝试从变量运行脚本路径时,它失败了。

指定变量(来自csv的第2列):

THE_VARIABLE=`echo ${CHOICE[${WHICH}]} | awk -F";" '{print $2}'`

echo $ THE_VARIABLE(ok):

/fake_path/scripts/test.sh

Bash debug:

    + echo $'/fake_path/scripts/test.sh\r'

然而,在尝试运行之后:

bash $THE_VARIABLE
: No such file or directoryripts/test.sh

似乎只在变量(?)中使用了部分字符串。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

字符串以ASCII字符13(\ x0D或\ 015或\ r \ n)结尾,而不是序列'\' 'r'echo尾随\r无法显示因为echo添加了\n,但是附加一个#字符会在行的开头显示。

echo "${THE_VARIABLE}#"
#fake_path/scripts/test.sh

删除尾随\r

THE_VARIABLE=${THE_VARIABLE%$'\r'}

否则表示输入文件的dos行结尾为\r\n,可以使用dos2unix进行修改。