Shell脚本bash编码错误问题

200 字
1 分钟
Shell脚本bash编码错误问题

Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录 今天在将windows下的脚本文件通过scp命令,发送到远程服务器上,在执行过程中遇得到了这个问题

Terminal window
./sh.sh
-bash: ./sh.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

原因分析:windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,用cat -A urfile时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了,可以使用命令 sed -i ‘s/\r//’ filename

cat -A sh.sh
#!/bin/bash^M$
# ^M$
^M$
echo "Hello World"^M$
Terminal window
sed -i 's/\r//' sh.sh
Terminal window
./sh.sh
Hello World
你好

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Shell脚本bash编码错误问题
https://czxcly.cn/posts/shell脚本bash编码错误问题/
作者
启源学社
发布于
2022-07-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
启源学社
公告
欢迎来到我的博客!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
45
分类
2
标签
16
总字数
16,178
运行时长
0
最后活动
0 天前

文章目录