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

Linux Bash使用变量从脚本运行脚本,linux,bash,shell,Linux,Bash,Shell,我正在尝试使用变量从bash脚本运行bash脚本 变量在解析的CSV之前被分配,当我回显它时,另一个脚本的路径看起来正常。当我尝试从变量运行脚本路径时,它失败了 分配变量(csv中的第二列): echo$THE_变量(ok): Bash调试: + echo $'/fake_path/scripts/test.sh\r' 但是,在尝试运行时: bash $THE_VARIABLE : No such file or directoryripts/test.sh 似乎只取变量(?)中字符

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

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

分配变量(csv中的第二列):

echo$THE_变量(ok):

Bash调试:

    + echo $'/fake_path/scripts/test.sh\r'
但是,在尝试运行时:

bash $THE_VARIABLE
: No such file or directoryripts/test.sh
似乎只取变量(?)中字符串的一部分


谢谢你的帮助

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

echo "${THE_VARIABLE}#"
#fake_path/scripts/test.sh
要删除尾随的
\r

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

否则,这意味着输入文件有dos行结尾
\r\n
,可以使用
dos2unix

对其进行修改,无法复制。请提供以下输出:-echo“#$THE#u变量#”可能是导致问题的回车的\r。是的,如果没有所有代码和csv,则无法完全复制。我只知道bash的基本知识,我想知道为什么在尝试运行它时它会剪切分配给变量的字符串(echo是可以的)。可能是某个Bash参数?@grailecho“#$THE_VARIABLE”#“--->#/fakepath/scripts/test.shPerfect!我只是在csv文件上运行dos2unix,一切正常。谢谢
echo "${THE_VARIABLE}#"
#fake_path/scripts/test.sh
THE_VARIABLE=${THE_VARIABLE%$'\r'}