我正在尝试使用Bash脚本实现确认提示,但由于某些原因,提示不会等待用户输入。我尝试了许多示例,但迄今为止没有运气。如果这有任何区别,我在MacOS上。
以下是我尝试的一些示例(均从其他SO答案复制+粘贴):
#!/bin/bash
read -p "Are you sure? " -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
# do dangerous stuff
fi
#!/bin/bash
read -p "Continue (y/n)?" CONT
if [ "$CONT" = "y" ]; then
echo "yaaa";
else
echo "booo";
fi
#!/bin/bash
while true; do
read -rsn1 input
if [ "$input" = "a" ]; then
echo "hello world"
fi
done
#!/bin/bash
read -p "Continue (y/n)?" choice
case "$choice" in
y|Y ) echo "yes";;
n|N ) echo "no";;
* ) echo "invalid";;
esac
这甚至没有提示任何东西:
#!/bin/bash
read -n 1 -s -r -p "Press any key to continue"
.git/hooks/commit-msg
文件,所以当用户运行git commit -m 'Hello'
命令时,commit-msg
就会被触发启动。 - BentCoderls -l /dev/fd/
来查看:0 -> /dev/null。另一个解决方案可能是执行exec 0<&1
。 - Nahuel Fouilleul