当你在 Linux 系统上运行一个 shell 脚本时,如果遇到 $'\r': command not found 这样的错误信息,这通常意味着 shell 解释器在尝试执行一个它不认识的命令,这里的“命令”实际上是 Windows 系统中的回车符(\r)。在 Linux 中,回车符被视为普通字符,而不是命令的一部分,因此会导致此错误。
当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决方案: 方法一:将回车符(\r)替换为换行符(\n) sed -i 's/\r//' 脚本名 ...
当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决办法: sed -i 's/\r//' xxx.sh编辑...
Windows 下的换行符是\r\n,而 Linux 下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。 解决方法:(运行以下命令即可修改该脚本格式) vim <脚本名称> :set ff=unix :wq 保存退出后,恢复到原先步骤,继续执行原来的脚本命令即可。发布...
shell脚本执行错误 $'\r':command not found $'\r':command not found 1 原因: 文件在Windows系统编辑过,文件换行使用的是\r\n,而Unix系统是\n 2 解决方案: 方法一:用dos2unix做转换 安装dos2unix yum install dos2unix –y dos2unix aaa.sh...
在Linux下执行由Windows编辑的.sh脚本时,若该脚本包含空行,可能遇到$‘\r‘: command not found的错误。这是因为Windows和Linux的文件格式存在差异,Windows中换行符为\r,而Linux使用的是。脚本中的\r无法被Linux识别,从而引发问题。问题根源在于脚本编码问题。为解决此问题,首先,需将脚本格式进行...
今天在Windows下编辑了一段CentOS7下编译安装ffmpeg源代码以及相关依赖软件包的编译sh脚本,直接拷贝到CentOS7下报错了:出现$’\r’:command not found的错误。 在linux上执行脚本时出现$’\r’:command not found,然而仔细检查脚本,对应行位置只是一个空行,并没有问题,那么linux为什么会将一个回车的空行报错?
one-more.sh: line 1: $'\r': command not found 原因 出现这样的错误,是因为Shell脚本在Windows系统编写时,每行结尾是\r\n,而在Linux系统中行每行结尾是\n,所以在Linux系统中运行脚本时,会认为\r是一个字符,导致运行错误。 解决方法 去除Shell脚本的\r字符: ...
shell脚本运行报错$'\r': command not found 执行个别shell测试脚本运行报错$'\r': command not found 考虑到可能是windows与Linux的换行符不同的原因(windows是\r\n,Linux是\n)造成的,但是又不想一个个替换。 可以使用如下命令来解决: # vi 脚本名...
从windows上传了一个 脚本 到 Linux 上执行 出现如下错误:$'\r': command not found 这是windows与Unix文本编辑的默认格式不同造成的,需要转成unix格式。 解决方法 [root@localhost ~]# yum install -y Example.sh[root@localhost ~]# dos2unix Example.shdos2unix: converting file Example.sh to Unixforma...