shell临时变量识别

时间:2015-12-16 14:44:29

标签: shell scripting

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它们是什么?。

1 个答案:

答案 0 :(得分:1)

“temp”是文字文件名; [ -e temp ]检查文件是否存在。如果是这样,脚本会将其删除,大概是因为后面的echo所有追加到文件(>> temp),所以当脚本不会删除文件中已有的内容开始。

没有涉及变量;该文件的名称字面意思是“临时”。