echo "\n\n enter judge name:\c"
read jnm
cnt=`grep -c "^$jnm" judge.txt`
if [ $cnt -eq 0 ]
then
echo "record not found"
else
echo "1. Update"
echo "2. Delete"
echo "3. Cancel"
echo "enter your choice:"
read ch
if [ -e temp ]
then
rm temp # what does this temp store
fi
if [ $ch -eq 3 ]
then
echo "record not deleted"
elif [ $ch -eq 1 -o $ch -eq 2 ]
then
for i in `cat judge.txt`
do
jname=`echo $i | cut -d ':' -f1`
if [ "$jname" = "$jnm" ]
then
if [ $ch -eq 1 ]
then
addrecord 1
echo "$jnm:$cnm:$city:$cjudged:$tcases" >> temp
fi
else
echo $i >> temp
fi
done
rm judge.txt
mv temp judge.txt
if [ $ch -eq 1 ]
then
echo "record is updated"
else
echo "record is deleted"
fi
else
echo "invalid choice"
fi
fi
我在评论中提到了问题的细节 在第一个if更新条件中,究竟是什么临时存储。 -e如何在单个操作数上运行,这个临时值是多少。 我试着寻找它,但我没有找到任何东西。 这段代码只是代码的某一部分,而不是整个代码 代码工作得很好。是否有任何altrenative或解决方案如果我想使用两个操作数-e它们是什么?。
答案 0 :(得分:1)
“temp”是文字文件名; [ -e temp ]
检查文件是否存在。如果是这样,脚本会将其删除,大概是因为后面的echo
所有追加到文件(>> temp
),所以当脚本不会删除文件中已有的内容开始。
没有涉及变量;该文件的名称字面意思是“临时”。