shift和命令行参数的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06

shift和命令行参数的问题

#1

帖子 Dic4000 » 2008-12-18 23:22

test.sh的脚本内容如下:

代码: 全选

#!/bin/bash
echo $@;

echo '$1='$1;
shift;
echo '$1='$1;
shift;
echo '$1='$1;

if [ -n $1 ]
then echo NonEmpty,$1;
else echo Empty ;
fi;
在终端下执行bash test.sh a b
结果是

代码: 全选

a b
$1=a
$1=b
$1=
NonEmpty,
请问最后一次Shift后,$1为什么不为空? 难道不应该打印Empty吗?
ago1414
帖子: 91
注册时间: 2008-11-22 9:38

Re: shift和命令行参数的问题

#2

帖子 ago1414 » 2008-12-19 18:47

if [ -n $1 ]
then echo NonEmpty,$1;
else echo Empty ;
fi;

變更為

if [ -n "$1" ]

才會正確!!
回复