当我使用简单的 bash 命令时
#!/bin/bash
echo Please, enter your name
read NAME
echo "Hi $NAME!"
并使用它运行它source filename.sh
给我一个错误:Undefined variable
可能是什么问题呢?我搜索但没有解决方案。
答案1
总结供以后参考:
shebang 指向/bin/bash
但该source
命令使代码在当前 shell 中运行,结果是csh
.
该代码在我的bash
Debian 上工作,但在我的那里不起作用csh
,当使用source filename.sh
.然而,OP 的意图似乎是用 来运行它bash
。
为了使其按bash
预期运行,需要将其设为可执行 ( chmod a+x filename.sh
) 并由 调用./filename.sh
。
最后,#!/bin/bash
在这个特殊案例中,shebang 走上了一条错误的道路。