什么是' set -e'的目的是什么?没有任何争论?

时间:2017-07-11 12:09:13

标签: bash

我试图编写一个Bash脚本来控制Docker Compose中的启动顺序,类似于https://docs.docker.com/compose/startup-order/上给出的示例脚本:

#!/bin/bash
# wait-for-postgres.sh

set -e

host="$1"
shift
cmd="$@"

until psql -h "$host" -U "postgres" -c '\l'; do
  >&2 echo "Postgres is unavailable - sleeping"
  sleep 1
done

>&2 echo "Postgres is up - executing command"
exec $cmd

我试图了解第一行的目的是什么,set -e。手册页中的用法为

set ( -e | --erase ) [SCOPE_OPTIONS] VARIABLE_NAME[INDICES]...

没有VARIABLE_NAME,这个命令有什么作用?我没想到什么?

1 个答案:

答案 0 :(得分:2)

不确定你指的是什么。阅读help set

  

-e如果命令以非零状态退出,则立即退出。