找到 kermit 目录的路径,放在脚本中的 shebang (#!) 之后

找到 kermit 目录的路径,放在脚本中的 shebang (#!) 之后

我使用以下脚本连接到我的串行设备kermit

#!/usr/bin/kermit
set port /dev/ttyUSB8
set speed 115200
set carrier-watch off
set flow-control none
set prefixing all
OUTPUT ifconfig\13

但它会抛出以下错误:

bash: ./test.script: /usr/bin/kermit^M: bad interpreter: No such file or directory

我怀疑我在 shebang 之后给出的路径可能是问题所在。如何找到让我的脚本正常运行的正确路径?

答案1

shebang 之后你就有了要执行的命令。脚本名称将是第二个参数。因此,如果是 bash,#!/bin/bash则相当于 call bash ./script。在您的情况下,该命令相当于:

sudo /usr/bin/kermit ./test.script

您应该检查 kermit 是否已安装以及是否在/usr/bin例如中使用命令which kermit

编辑。

啊。现在我发现了错误。第一行有一个 ^M (CR)。转到脚本的第一行,删除行尾并重做。这在 Unix/Linux 中。 DOS/Windows 会添加 ^M,这不好解释。

答案2

^M是一个回车符,表明您的脚本可能是在 Windows 计算机上编写的。

要删除回车符,只留下换行符,请执行以下操作:

perl -pi.old -e 's{\r}{}' file

这将执行就地更新,首先将原始文件备份为“.old”。

相关内容