在 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
输了你,赢了世界又如何...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-12-17 svn 迁移至 git