我在 bash 中编写了脚本,但尝试通过终端运行它时遇到了问题。我在 Ubuntu 和 Debian 上试过了。
例如,这是 bash 脚本:
#!/bin/bash
clear
当我通过以下命令运行它时:
bash 名称.sh
或者
。名称.sh
我收到了那个错误
bash: $'clear\r: command not found
在我的脚本中每一行都有这个。
答案1
“ \r
” 是bash
打印回车符的方式。(“ ^M
,0x0B
)其他一些系统将其用作行尾标记的一部分(“ ^M^J
”,回车符,后跟换行符)。 Linux 仅在行尾使用“^J”(换行符)。
清除“ \r
”字符的一种方法是通过dos2unix
同名包中的 。
另一种方法是:
tr -d "\r" <name.sh >a.tmp
mv a.tmp name.sh