我基本上有一个bash脚本,它可以连续执行5个命令。我想添加一个逻辑,询问我"Do you want to execute command a",如果我说"是",则执行该命令,否则脚本跳到另一行,我会看到提示"Do you want to execution command B"。
脚本非常简单,看起来像这个
echo "Running A"
commandA &
sleep 2s;
echo "done!"
echo "Running B"
commandB &
sleep 2s;
echo "done!"
...
使用read
内置程序从用户处获取输入。
read -p "Run command $foo? [yn]" answer
if [[ $answer = y ]] ; then
# run the command
fi
如果要多次执行此操作,请将以上内容放入一个函数中,该函数将命令(可能还有提示)作为参数。
您想要Bash-read内置。您可以使用隐式REPLY变量在循环中执行此操作,如:
for cmd in "echo A" "echo B"; do
read -p "Run command $cmd? "
if [[ ${REPLY,,} =~ ^y ]]; then
eval "$cmd"
echo "Done!"
fi
done
这将循环执行所有命令,提示用户输入每个命令,然后仅当用户响应的第一个字母是Y或Y字符时才执行该命令。希望能有所帮助!