我正在尝试运行一个简单的程序
#!/bin/bash
bash
echo "Hello World"
但程序只执行到第 2 行的“bash”命令。为什么程序无法运行第 3 行?程序在 bash 输入处终止
bash-3.2$
我是否需要添加另一行以便程序可以打印出“Hello World”?请记住,我确实知道我已经在 bash shell 中,但我仍然不明白这个错误。
答案1
假设您从终端中的命令提示符运行此命令,那么您正在运行三bash 的实例:
- 在终端中运行的交互式 bash。
- 运行脚本的 bash 实例。
- 由脚本第二行调用的 bash 实例。
在您的脚本中,您调用时bash
不带参数,因此它从标准输入读取命令。由于输入来自终端,因此您将获得一个交互式 shell,它会打印提示等。
从实例 #3 退出后,脚本(实例 #2)将继续到下一行并打印Hello World
。此后,脚本终止,您将返回到原始命令提示符(实例#1)。