UnixLinux 执行 shell 报错:“$' ': 未找到命令” 的解决办法

爱谁谁
发布: 2025-08-29 08:36:24
原创
577人浏览过

大多数情况下,shell 脚本在 windows 上编写导致的换行问题是主要原因。具体来说,windows 使用

crlf
登录后复制
登录后复制
)作为换行符号,而 unix/linux 使用
lf
登录后复制
登录后复制
)。

名称解释

缩写 全称 ASCII转义 说明 CR Carriage Return \r 回车 LF Linefeed \n 换行,Unix/Linux 的换行符 CRLF Carriage Return & Linefeed \r\n 回车并换行,Windows 的换行符

方法一(推荐):使用 vim 转换为 Unix 换行

# 测试脚本
$ cat windows.sh
#!/usr/bin/env bash
date
<h1>重现报错</h1><p>$ sh windows.sh
windows.sh:行2: $'date
': 未找到命令</p><h1>查看文件格式信息</h1><p>$ file windows.sh
windows.sh: a /usr/bin/env bash
 script, ASCII text executable, with CRLF line terminators</p><h1>转换为 Unix 换行</h1><p>$ vim windows.sh
:set ff=unix
:wq</p><h1>再次查看文件格式信息</h1><p>$ file windows.sh
windows.sh: a /usr/bin/env bash script, ASCII text executable
登录后复制

方法二:使用 dos2unix

# 安装 dos2unix
$ yum install dos2unix</p><h1>转换为 unix 格式</h1><p>$ dos2unix windows.sh
dos2unix: converting file windows.sh to Unix format ...</p><h1>转换为 dos 格式</h1><p>$ unix2dos linux.sh
unix2dos: converting file linux.sh to DOS format ...
登录后复制

方法三:删除回车( )符号

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手31
查看详情 法语写作助手
# tr 删除 
 回车符号,^M 终端输入为Ctrl+V和Ctrl+M
$ cat windows.sh | tr -d "^M" > windows2unix.sh</p><h1>sed 删除 
 回车符号,^M 终端输入为Ctrl+V和Ctrl+M</h1><p>$ sed -i "s/^M//g" windows.sh
登录后复制

方法四:使用文本编辑器工具转换换行符号(如:atom、notepad++ 等)

UnixLinux 执行 shell 报错:“$'
': 未找到命令” 的解决办法

以上就是UnixLinux 执行 shell 报错:“$' ': 未找到命令” 的解决办法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号