shell中$和$@的区别

E_BADARGS=65
 
if [ ! -n "$1" ]
then
  echo "Usage: `basename $0` argument1 argument2 etc."
  exit $E_BADARGS
fi
echo
index=1
 
for arg in "$*"
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Entire arg list as single word."
echo
index=1
 
for arg in "$@"
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Entire arg list as seperated words."
echo
index=1
 
for arg in $*
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Entire arg list as seperated words."
echo
index=1
 
for arg in $@
do
  echo "Arg #$index = $arg"
  let "index+=1"
done
echo "Entire arg list as seperated words."
exit 0

 执行结果:

$ ./test.sh bi yutong

Arg #1 = bi yutong
Entire arg list as single word.

Arg #1 = bi
Arg #2 = yutong
Entire arg list as seperated words.

Arg #1 = bi
Arg #2 = yutong
Entire arg list as seperated words.

Arg #1 = bi
Arg #2 = yutong
Entire arg list as seperated words
 

猜你喜欢

转载自biyutong.iteye.com/blog/1571528