日期:2014-05-16  浏览次数:20565 次

关于SHELL编程中的if嵌套问题
虽然写了几年的C/C++程序,但是SHELL却没有研究过.请各位大侠指点迷津
为什么不可以这样写,又或者我哪写错了?
C/C++ code

if [ "$1" = "-f" ] && [ -n "$1" ]
then
#       echo $1
#       rm.exe -f $2
        echo "You can't use args -f"
else
#       echo "error"
        echo "Are you sure to delete $1?"
        read A
                                                                                
        if [ $A = "y" ]    //问题出在这,难道不可以这样写?不能这样嵌套么?不会吧...
        then
                rm.exe $1
        else
                echo "delete is undo"
        fi
                                                                                
fi




------解决方案--------------------
C/C++当中=表示什么?
------解决方案--------------------
run了一下,语法没问题啊,不知道你遇到什么问题?
------解决方案--------------------
if [ $A -eq "y" ]
------解决方案--------------------
if里的变量都要""引起来,否则带空格的内容就会导致错误。
------解决方案--------------------
if [ “$A” -eq "y" ]或者你改成 if [ "$A" == "y" ]是两个等于号吧 不是一个 字符串的比对还是用第一个比较好