我有几个用户输入语句,例如:
read -r -p "Do u want to include this step (y) or not (n) (y/N)"? answer
if [[ "$answer" =~ ^[Yy]$ ]]; then
...
fi
我正在寻找一种方法来自动回答所有这些问题。想象一个非交互式会话,用户使用--yes
选项调用脚本。没有进一步stdin
的输入。
我现在能想到的唯一方法是在每个if 语句上添加另一个条件。
有什么想法吗?
我有几个用户输入语句,例如:
read -r -p "Do u want to include this step (y) or not (n) (y/N)"? answer
if [[ "$answer" =~ ^[Yy]$ ]]; then
...
fi
我正在寻找一种方法来自动回答所有这些问题。想象一个非交互式会话,用户使用--yes
选项调用脚本。没有进一步stdin
的输入。
我现在能想到的唯一方法是在每个if 语句上添加另一个条件。
有什么想法吗?
您可以使用yes(1),它根本不需要对您的脚本进行任何修改。
它将无限重复指定的咒语,如果没有指定,它将默认
y
。如果您
read
仅用于这些问题,并且始终调用变量answer
,请替换read
:我会将整个决策逻辑放在一个函数中,既检查自动模式,也可能查询用户。然后在每种情况下从主级别调用它。
want_act
下面返回真/假本身,不需要在主级别进行字符串比较,读者很清楚条件的作用。