你好〜我一直试图解决这个问题半天。
INPUT=lookup.txt
IFS=":"
while read vTitle vAuthor vPrice vStock vSold
do
tempString="$vTitle:$vAuthor:$vPrice:$vStock:$vSold"
#echo "$tempString"
while [ "$iTitle" == "$vTitle" ]; do
./testcase.sh
done
done < $INPUT
Testcase.sh包含子菜单的脚本。当我运行这个脚本时,我的子菜单不断重复,就像在递归循环中一样。不知道如何解决这个问题? 编辑# 对不起家伙$ iTitle包含用户输入。以及testcase.sh的示例如下:
#! /bin/bash
menu=""
until [ "$menu" = "f" ]; do
echo " a.) Update title"
echo " b.) Update author"
echo " c.) Update price"
echo " d.) Update quantity available"
echo " e.) Update quantity sold"
echo " f.) Back to main menu"
echo " Make selection"
read menu
case $menu in
a)
echo "a" ;;
b)
echo "b" ;;
c)
echo "c" ;;
d)
echo "d" ;;
e)
echo "e" ;;
f)
break ;;
*) ;;
esac
done
我意识到我的问题不明确。我有一个用户输入$ iTitle第一个代码摘录检查lookup.txt为相同的$ vTitle。如果成功,我希望程序运行testcase.sh。目前它确实运行,但testcase.sh以递归方式运行。
答案 0 :(得分:1)
while [ "$iTitle" == "$vTitle" ]; do
./testcase.sh
done
在此块语句中,$iTitle
和$vTitle
均未更改。这就是循环没有结束的原因。可能是你想用
if [ "$iTitle" == "$vTitle" ]; then
./testcase.sh
fi
而且,在代码中看不到$iTitle
的值。