在 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
输了你,赢了世界又如何...