在 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 @   不是豆豆  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2019-12-17 svn 迁移至 git
友情链接:迷途


点击右上角即可分享
微信分享提示