从shell脚本中删除换行符命令

从shell脚本中删除换行符命令,shell,Shell,我有以下shell脚本“geturl.sh”: wget -O /dev/null http://google.com/$1 wget -O /dev/null http://google.com/$1 当我使用“./geturl.sh news”运行它时,它会在第一行和第二行尝试wget 为什么要计算换行符?我该如何修复它 谢谢如果您使用Unix编辑器创建文件,它不会/不应该有回车[chr(13)、0x0D或^M]字符。Unix换行符仅为换行符[chr(10)、0x0A或^J]。回车对she

我有以下shell脚本“geturl.sh”:

wget -O /dev/null http://google.com/$1
wget -O /dev/null http://google.com/$1
当我使用“./geturl.sh news”运行它时,它会在第一行和第二行尝试wget

为什么要计算换行符?我该如何修复它


谢谢

如果您使用Unix编辑器创建文件,它不会/不应该有回车[chr(13)、0x0D或^M]字符。Unix换行符仅为换行符[chr(10)、0x0A或^J]。回车对shell没有任何特殊意义,通常会导致不需要的行为

您可以使用sed修复它:

sed -i 's/\r//' geturl.sh

这很有道理——我使用Notepad++编写脚本,默认情况下它使用Windows换行符。我使用编辑>EOL转换>unix将文件更改为unix格式。谢谢您!