文章目录
- 一、运行.sh脚本报错: /bin/bash^M: 解释器错误: 没有那个文件或目录
- 二、总结
一、运行.sh脚本报错: /bin/bash^M: 解释器错误: 没有那个文件或目录
这个^M是windows下的结尾\r,到linux系统中就变成了 ^M。
因为我是把.sh脚本从windows下移动到虚拟机中,导致了这个问题。
使用
cat -A compare-tcp-algorithms.sh
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
查看脚本文件的内容.
-algorithms.sh
^M$
^M$
ALGORITHMS=(TcpNewReno TcpHighSpeed TcpHybla TcpWestwood TcpWestwoodPlus TcpVegas TcpScalable TcpVeno TcpBic TcpYeah TcpIllinois TcpHtcp)^M$
^M$
for item in ${ALGORITHMS[@]}; do^M$
echo "----- Simulating $item -----"^M$
./waf --run "my-tcp-variants-comparison --transport_prot=$item --prefix_name='data/$item' --tracing=True --duration=20"^M$
done^M$
^M$
./plottcpalgo.py^M$
可看到结尾都有^M。需要把它们去掉。
sed -i 's/\r$//' compare-tcp-algorithms.sh
-algorithms.sh
$
$
ALGORITHMS=(TcpNewReno TcpHighSpeed TcpHybla TcpWestwood TcpWestwoodPlus TcpVegas TcpScalable TcpVeno TcpBic TcpYeah TcpIllinois TcpHtcp)$
$
for item in ${ALGORITHMS[@]}; do$
echo "----- Simulating $item -----"$
./waf --run "my-tcp-variants-comparison --transport_prot=$item --prefix_name='data/$item' --tracing=True --duration=20"$
done$
$
./plottcpalgo.py$
重新运行,成功
二、总结
使用下面语句即可:
sed -i 's/\r$//' your_file_name.sh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)