,一个shell script有关问题

十万火急,求救一个shell script问题
下面有一个shell   脚本中的一个函数,是把字符串第一位的“#”拿掉,并且字符串等于“0000”或“FFFF”就把字符串变成“—-”

#!/usr/bin/ksh
……
extractHash()
{
    var=$input

    temp=`echo   $var   |cut   -c1-1`
    if   [[   "$temp "   -eq   "# "   ]]   ;   then
        if   [   "$var "   =   "#0000 "   ]   ||   [   "$var "   =   "#FFFF "   ];   then
            input= "—- "
        else
                temp2=`echo   $var   |cut   -c2-`
                input=$temp2
        fi
    else
        if   [   "$var "   =   "0000 "   ]||[   "$var "   =   "FFFF "   ]   ;   then
            input= "—- "
        else
            input=$var
        fi      
    fi
}
……

如果输入的字符串是   带“#”的就没有问题
比如:   "#1234 "   处理结果是   1234       (ok)
              "#0000 "   处理结果是   —-       (ok)
              "#FFFF "   处理结果是   —-       (ok)

可是如果不带“#”的字符串处理就有问题了
比如:   "1234 "     处理结果是   1234       (这个正确的,ok)
              "0000 "     处理结果是   000         (有问题,   false)
              "FFFF "     处理结果显示       Bad   number     (有问题,   false)  

请高手帮我看看,为什么处理   0000   和   FFFF   时不对呢


逻辑没问题,好像写错了,最后应该:

……..
else
if [ "$var " = "0000 " ]||[ "$var " = "FFFF " ] ; then
input= "—- "

fi

else
input=$var
fi
}

http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/string-manipulation.html

#!/bin/bash

var1= '#0000 '
var2=${var1#\#} #去掉 '# '
echo $var2
var3=${var2/0000/—-} #将0000换成—-
echo $var3

,一个shell script有关问题

相关文章:

你感兴趣的文章:

标签云: