shell杂记
时间:2008-12-15 来源:共舞秋雨
比较整数时,“<”,“<=”,“>”,“>=”要在双括号中使用:(("$a" < "$b"))
字符串比较时,">",“<”使用在[ ]结构中的时候需要被转义:
if [[ "$a" > "$b" ]]
字符串比较时,">",“<”使用在[ ]结构中的时候需要被转义:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
当-n使用在中括号中进行条件测试的时候, 必须要把字符串用双引号引用起来.
if [ -n $string1 ] # $string1 没有被声明和初始化.
then
echo "String \"string1\" is not null."
else
echo "String \"string1\" is null."
fi
# 错误的结果.
# 显示$string1为非null, 虽然这个变量并没有被初始化.
echo
# 让我们再试一下.
if [ -n "$string1" ] # 这次$string1被引号扩起来了.
then
echo "String \"string1\" is not null."
else
echo "String \"string1\" is null."
fi # 注意一定要将引用的字符放到中括号结构中!
string1=initialized
if [ $string1 ] # 再来, 还是只有$string1, 什么都不加.
then
echo "String \"string1\" is not null."
else
echo "String \"string1\" is null."
fi
# 再来试一下, 给出了正确的结果.
# 再强调一下, 使用引用的("$string1")还是更好一些, 原因我们上边已经说过了.
string1="a = b"
if [ $string1 ] # 再来, 还是只有$string1, 什么都不加.
then
echo "String \"string1\" is not null."
else
echo "String \"string1\" is null."
fi
相关阅读 更多 +