gpt4 book ai didi

linux - Bash 脚本在没有 shebang 的情况下无法工作但是 shebang 导致错误消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:51 27 4
gpt4 key购买 nike

我正在尝试在 CentOS 6 中运行 bash 脚本。如果没有 shebang header ,它就无法工作。但是,当我包含 shebang 时,它会显示一条错误消息!

这是一个名为 test.sh 的脚本。我把它放在我的 $HOME/bin 目录中。我对它运行 chmod 777 以消除任何权限问题。我确认它使用的是 Unix 行结尾...

test_var=test
echo $test_var

我是这样执行的:

sh ~/bin/test.sh

我从中得到以下结果:

/home/myusername/bin/test.sh: line 1: test_var=test: command not found

现在我添加了一个 shebang,所以脚本变成了:

#!/bin/bash
test_var=test
echo $test_var

当我运行它时,我得到:

/home/myusername/bin/test.sh: line 1: #!/bin/bash: No such file or directory
test

所以一旦添加了 shebang 就没有问题分配变量,但它不喜欢同时添加 shebang!

我检查过,/bin/bash 确实存在。我尝试了一系列其他 shebangs 并得到了相同的结果。我什至尝试了一些明显无效的东西,即 #!/fake/path,结果是一样的!

如果不添加 shebang(无论它是什么)脚本将无法运行,但它会提示 shebang(无论它是什么)!

最佳答案

你有一个编码问题。

查看:https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8

A text editor or web browser misinterpreting the text as ISO-8859-1 or CP1252 will display the characters  for this.

将您的文件保存为不带 BOM 的 UTF-8 或使用系统编辑器(vi,...)

关于linux - Bash 脚本在没有 shebang 的情况下无法工作但是 shebang 导致错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com