raz*_*zak 4 shell bash control-flow test read
我可以在 bash 中做到这一点:
while read -n1 -r -p "choose [y]es|[n]o"
do
if [[ $REPLY == q ]];
then
break;
else
#whatever
fi
done
Run Code Online (Sandbox Code Playgroud)
这有效但似乎有点多余,我可以做这样的事情吗?
while [[ `read -n1 -r -p "choose [y]es|[n]o"` != q ]]
do
#whatever
done
Run Code Online (Sandbox Code Playgroud)
您不能使用的返回代码read(如果它获得有效的非空输入,则为零),并且您不能使用其输出(read不打印任何内容)。但是您可以在 while 循环的条件部分中放置多个命令。while 循环的条件可以与您喜欢的命令一样复杂。
while read -n1 -r -p "choose [y]es|[n]o" && [[ $REPLY != q ]]; do
case $REPLY in
y) echo "Yes";;
n) echo "No";;
*) echo "What?";;
esac
done
Run Code Online (Sandbox Code Playgroud)
(如果输入是q或检测到文件结束条件,则退出循环。)
| 归档时间: |
|
| 查看次数: |
16222 次 |
| 最近记录: |