当我执行 bash 脚本时。鉴于我有
set -x
我会目视观察正在发生的事情。但在某些部分,我希望它停止并询问我是否仍想继续执行下一行。
我知道:
set -e
这只是确保 bash 脚本出错时退出,但我不想使用它。相反,我只想划分我的代码,让 bash 脚本时不时地询问我是否应该继续。
答案1
您可以用于read
交互式脚本。
例如:
echo "Do you want to continue?(yes/no)"
read input
if [ "$input" == "yes" ]
then
echo "continue"
fi
您可以根据input
提供的 if 条件进一步执行。
编辑
如果您想在多个地方使用它,那么您可以创建一个函数并在需要用户干预的任何地方调用。
答案2
要获得继续的确认,read
内置可以使用bash。但是,如果您想对每一行都执行此操作,那么您不想在每个需要的地方插入多于一行的内容。
另外,你不想输入完整答案程序是否应该继续 - 例如“是”或“y”;按回车键应该足够继续下去;并停止,按Ctrl+C很简单也很清楚。
但是现在您将所有这些确认检查添加到您的代码中 - 如果您只想运行它几次怎么办?无需检查?好的,如果能够的话就好了把它关掉。我们为此使用一个变量。
你可以写一个功能可以在中间的行中添加以下内容:
#!/bin/bash
#useConfirm=true - comment out the line below like this to disable confirmation
useConfirm=true
confirm() {
[ "$useConfirm" = true ] && read -p "Proceed? (Enter) - (^C to abort)"
}
echo a
confirm
echo b
echo c
confirm
echo d