当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决方案: 方法一:将回车符(\r)替换为换行符(\n) sed -i 's/\r//' 脚本名 ...
当你在 Linux 系统上运行一个 shell 脚本时,如果遇到 $'\r': command not found 这样的错误信息,这通常意味着 shell 解释器在尝试执行一个它不认识的命令,这里的“命令”实际上是 Windows 系统中的回车符(\r)。在 Linux 中,回车符被视为普通字符,而不是命令的一部分,因此会导致此错误。
当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决办法: sed-i's/\r//'xxx.sh...
解决Shell脚本$'\r': command not found问题 造成这个问题的原因是Windows下的空行,我们只需要把文件转成unix就好 Centos下,执行yum install dos2unix,然后dos2unix [file],再执行shell命令就好了
Windows 和 Linux 的 .sh 脚本文件格式不同,如果在脚本中有空行,脚本是在 Windows 下进行编辑之后上传到 linux 上去执行的话,就会出现这个问题。 Windows 下的换行符是\r\n,而 Linux 下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。 解决方法:(运行以下命令即可修改该脚本格式) vi...
今天在Windows下编辑了一段CentOS7下编译安装ffmpeg源代码以及相关依赖软件包的编译sh脚本,直接拷贝到CentOS7下报错了:出现$’\r’:command not found的错误。 在linux上执行脚本时出现$’\r’:command not found,然而仔细检查脚本,对应行位置只是一个空行,并没有问题,那么linux为什么会将一个回车的空行报错?
解决Shell脚本$'\r': command not found问题,造成这个问题的原因是Windows下的空行,我们只需要把文件转成unix就好Centos下,执行yuminstalldos2unix,然后dos2unix[file],再执行shell命令就好了
原因是Windows和Linux的.sh脚本文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题。 windows下的换行符是\r\n,而linux下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。
在window环境下编辑的shell脚本放在linux上运行报错。 问题是在Windows下换行的“\r”到了Linux环境下不能够识别了。 因为Linux环境下默认的换行符为“\n”。 这里就需要做一点修改转换的工作。 方法一、 sed -i 's/\r//' 脚本名 #转化为unix格式 ...
在Linux下执行由Windows编辑的.sh脚本时,若该脚本包含空行,可能遇到$‘\r‘: command not found的错误。这是因为Windows和Linux的文件格式存在差异,Windows中换行符为\r,而Linux使用的是。脚本中的\r无法被Linux识别,从而引发问题。问题根源在于脚本编码问题。为解决此问题,首先,需将脚本格式进行...