当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决方案: 方法一:将回车符(\r)替换为换行符(\n) sed -i 's/\r//' 脚本名 ...
$'\r':command not found 1 原因: 文件在Windows系统编辑过,文件换行使用的是\r\n,而Unix系统是\n 2 解决方案: 方法一:用dos2unix做转换 安装dos2unix yum install dos2unix –y dos2unix aaa.sh 方法二:Nodepad ++ 处理 Menu->Edit->EOL Conversion -> Unix/OSX Format 菜单->编辑->文档格式转换-...
当你在 Unix/Linux 系统上运行一个包含 Windows 格式换行符的脚本时,Shell 会尝试解释其中的回车符,导致错误提示 $‘\r’: command not found。这是因为 Shell 将回车符(\r)视为命令的一部分,而且它不是一个有效的命令。 解决办法: sed-i's/\r//'xxx.sh...
从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...
今天在Windows下编辑了一段CentOS7下编译安装ffmpeg源代码以及相关依赖软件包的编译sh脚本,直接拷贝到CentOS7下报错了:出现$’\r’:command not found的错误。 在linux上执行脚本时出现$’\r’:command not found,然而仔细检查脚本,对应行位置只是一个空行,并没有问题,那么linux为什么会将一个回车的空行报错?
在window环境下编辑的shell脚本放在linux上运行报错。 问题是在Windows下换行的“\r”到了Linux环境下不能够识别了。 因为Linux环境下默认的换行符为“\n”。 这里就需要做一点修改转换的工作。 方法一、 sed -i 's/\r//' 脚本名 #转化为unix格式 ...
原因是Windows和Linux的.sh脚本文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题。 windows下的换行符是\r\n,而linux下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。
'\r': command not found - .bashrc / .bash_profile [duplicate] (17 answers) Closed 7 years ago. echo "Select your option:" echo "1. Change ip address" echo "2. Add route" echo "3. Reboot" echo "4. Exit" read A case $A in 1) echo "Add Ip address" read IP echo "Add ...
Windows 和 Linux 的 .sh 脚本文件格式不同,如果在脚本中有空行,脚本是在 Windows 下进行编辑之后上传到 linux 上去执行的话,就会出现这个问题。 Windows 下的换行符是\r\n,而 Linux 下的换行符是\n,没有识别/r,所以会导致上述的报错,这个属于脚本编码的问题。
shell脚本运行报错$'\r': command not found 执行个别shell测试脚本运行报错$'\r': command not found 考虑到可能是windows与Linux的换行符不同的原因(windows是\r\n,Linux是\n)造成的,但是又不想一个个替换。 可以使用如下命令来解决: # vi 脚本名...