在 Windows 下编写 Linux 脚本,传至 Linux 中执行时,会遇到 not found 错误

在 Windows 下建立脚本

#!/bin/bash
echo hello

传至 Linux 下执行脚本

./test.sh

执行出错

-bash: ./test.sh: Permission denied

问题原因:未对文件添加可执行权限

添加权限

chmod +x test.sh

再次执行脚本

./test.sh

执行出错

-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

问题原因:Windows 默认换行符是 /r/n,Linux 默认换行符是 /n

全局删除行尾的 /r 换行符:

sed -i 's/\r$//' test.sh
  • s: 表示替换操作。
  • \r: 匹配回车符(ASCII 13),这是 Windows 换行符 \r\n 的一部分。
  • $: 表示行尾,只在行尾匹配 \r
  • //: 表示将匹配到的内容替换为空(即删除 \r)。

参考链接:

https://blog.csdn.net/qq_36920008/article/details/84894242

posted @ 2024-12-17 10:04  不是豆豆  阅读(6)  评论(0编辑  收藏  举报
友情链接:迷途