一个bash脚本,反复按终端中的return键重复相同的脚本操作,直到我按q键
我想让这个脚本在我单击return时重复somescript.sh,直到我写q为止。我想我已经非常接近了,但是如果它读到“q”,我不能将$actionLoop设置为0,我在这里做错了什么一个bash脚本,反复按终端中的return键重复相同的脚本操作,直到我按q键,bash,shell,unix,terminal,command-line-interface,Bash,Shell,Unix,Terminal,Command Line Interface,我想让这个脚本在我单击return时重复somescript.sh,直到我写q为止。我想我已经非常接近了,但是如果它读到“q”,我不能将$actionLoop设置为0,我在这里做错了什么 #!/bin/bash $actionLoop = 1 while [ ${actionLoop} 1 ] do echo "do another random review script?" sh /somescript.sh echo
#!/bin/bash
$actionLoop = 1
while [ ${actionLoop} 1 ]
do
echo "do another random review script?"
sh /somescript.sh
echo "Done. Press q to quit."
read response
[ $response = "q" ] && $actionLoop = 0
done
改变
$actionLoop = 1
到
同样,这条线
[ $response = "q" ] && $actionLoop = 0
到
赋值变量时不能使用$
,赋值周围也不能有空格
依我看,你根本不需要那个变量。使用无限循环,并在给定
q
时将其打断
while : ;
do
echo "do another random review script?"
sh /somescript.sh
echo "Done. Press q to quit."
read response
[[ "$response" = "q" ]] && break
done
我个人更喜欢bash内置的
[[
]]
而不是[
(test)命令。有些人更喜欢[
以兼容较旧的shell。变量声明/赋值不能以$开头,并且之间没有空格=
[ $response = "q" ] && actionLoop=0
while : ;
do
echo "do another random review script?"
sh /somescript.sh
echo "Done. Press q to quit."
read response
[[ "$response" = "q" ]] && break
done