shell脚本在linux无法运行
shell脚本在linux无法运行
在windows写的.sh脚本,直接把文件传到Linux之后运行,报错:
$ bash ./v_1.sh
: command not found
'/v_1.sh: line 4: syntax error near unexpected token `do
'/v_1.sh: line 4: `do
脚本内容是:
#shellvirus I#
for file in ./infect/*
do
cp $0 $file
done
语法上并没有错误,报错是因为在Windows下编写的脚本通常会使用\r\n(回车+换行)作为换行符,而Linux则使用\n(换行)
在linux中使用命令:
sed -i 's/\r$//' your_script.sh
替换掉换行符就能正常运行。
批量替换就把脚本名字your_script.sh
改成通配符*.sh
,这样会处理当前目录下的所有.sh文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)