[英]change a counter according to a output function in a while loop - in bash
我有一個隨機返回R或L的函數。我想根據該函數的輸出更改一個計數器:我想在R出現時增加計數器,而在L出現時減少計數器。
我的問題:計數器不會根據輸出函數(R或L)而改變,並且計數器僅減少或僅增加。
#GetsomeLoR is a function returning R or L
function GetsomeLoR() {
set -- "R" "L"
eval echo \$$(expr $RANDOM % 2 + 1)
sleep 0.015
}
return_var=$(GetsomeLoR) # return the output of the function named GetsomeLoR
counter="1"
number_max="60"
while [ $counter -lt $number_max ]; do
GetsomeLoR && sleep 0.1
if [[ $return_var == "L" ]]; then
counter=$[$counter-1]
echo $counter increase
elif [[ $return_var == "R" ]]; then
counter=$[$counter+1]
echo $counter decrease
else
echo error_buddy
fi
done
我的問題:如何根據名為GetsomeLoR的輸出函數更改計數器? 謝謝!
您沒有在循環中捕獲GetsomeLoR
的輸出。 因此,您將使用它在循環外的第一次調用中返回的單個值。
while [ $counter -lt $number_max ]; do
return_var=$(GetsomeLoR)
sleep 0.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.