为什么从pastebin下载bash脚本不起作用?

为什么从pastebin下载bash脚本不起作用?

我正在尝试从 Pastebin 上传和下载 bash 脚本,上传很简单,只需复制和粘贴,下载就没那么容易了。

我正在尝试下载两个脚本,这些是命令:

wget http://pastebin.com/raw.php?i=M6iQ6RaY --output-document=ts3update
wget http://pastebin.com/raw/e11R2wkP --output-document=ts3restore

当我尝试运行它们时,出现以下错误:

./ts3update: /bin/bash^M: bad interpreter: No such file or directory

然后,如果我删除解释器行,我就会得到:

./ts3update: line 4: $'\r': command not found

和这个:

./ts3restore: line 3: $'\r': command not found
./ts3restore: line 7: syntax error near unexpected token `$'in\r''
'/ts3restore: line 7: `        case $yn in

为什么会发生这种情况?我该如何解决?当我阅读或 grep 文件时,我没有发现任何实例^M或者'\r'为什么 bash 会看到类似的东西,而其他东西却看不到?

答案1

Michael Homer 指出的答案是,pastebin 已将 Windows CRLF 行结尾添加到我的文件中。为了修复它,我运行了以下命令:

sed -i 's/\r$//' ts3update
sed -i 's/\r$//' ts3restore

并且脚本执行成功。答案取自这里:在 Windows 上编辑的 Bash/Korn shell 脚本会抛出错误“...^M:未找到”

相关内容