退出整个bash脚本

时间:2015-03-05 02:13:28

标签: bash exit

我有两个脚本,script1有一个while循环,脚本2在这个while循环中调用。脚本2中的case语句带有一个退出的整个程序选项。但是当退出0调用它时,它只退出脚本2而不是在脚本1中循环退出。有什么想法吗?脚本详情如下 script1.sh

while read -r line;
do
  bash script2.sh
done<list.txt

script2.sh

read input </dev/tty
case "input" in 
  e)
    exit 0
    ;;
  *)
    echo $input
    ;;
  esac

要清楚我想要程序运行的是当我按下e时我希望整个程序停止不只是完成一个循环。 感谢您提前获得帮助

2 个答案:

答案 0 :(得分:3)

脚本2与脚本1处于不同的过程,因此脚本2无法杀死脚本1.

2解决方案:

  1. 使脚本2在与脚本运行相同的过程中运行(例如. script2
  2. 使脚本2返回脚本1可以检查的值,如果匹配则退出。

答案 1 :(得分:0)

把:

set -e

在脚本的开头1.在脚本2中,替换&#39;退出0&#39;与&#39;退出1&#39;。