红联Linux门户
Linux帮助

while的问题,我就没发现问题在那呢

发布时间:2010-11-02 10:33:58来源:红联作者:cgl7890
#!/bin/bash
while test -n $1
do
if test -e $1
then echo $1 exist
else echo $1 not exist
fi
shift
done



大家看看这个总是一出现就无限到 exist不管是对错。
我就奇怪了这个东西那里错了
文章评论

共有 1 条评论

  1. alick 于 2010-11-02 11:10:49发表:

    [code]#!/bin/bash
    echo "*$1*"
    while test -n "$1"
    do
    if test -e "$1"
    then echo "$1" exist
    else echo "$1" not exist
    fi
    shift
    echo "*$1*"
    done[/code]原代码中$1会被扩张为空,test -n后面什么都不接,结果返回0即成功。
    所以就死循环了
    给字符串加双引号是好习惯