[iyunv@localhost ceshi]# cat test.sh
#!/bin/bash
# test.sh
echo "-------------ISF is set to \"-seperator\" ------------"
IFS="-seperator"; # 注意 seperator前有一个减号(-)
for i in "$@"; do echo "@ '$i'"; done
for i in "$*"; do echo "* '$i'"; done
echo "-------------ISF is set to null ------------------------"
IFS=
for i in "$@"; do echo "@ '$i'"; done
for i in "$*"; do echo "* '$i'"; done
echo "-------------ISF is unset ------------------------"
unset IFS
for i in "$@"; do echo "@ '$i'"; done
for i in "$*"; do echo "* '$i'"; done
echo '---------$* and $@ are not put into double quotes(" ")-------'
for i in $@; do echo "@ '$i'"; done
for i in $*; do echo "* '$i'"; done
test.sh aa bb cc执行的结果如下:
[iyunv@localhost ceshi]# sh test.sh aa bb cc
-------------ISF is set to "-seperator" ------------
@ 'aa'
@ 'bb'
@ 'cc'
* 'aa-bb-cc'
-------------ISF is set to null ------------------------
@ 'aa'
@ 'bb'
@ 'cc'
* 'aabbcc'
-------------ISF is unset ------------------------
@ 'aa'
@ 'bb'
@ 'cc'
* 'aa bb cc'
---------$* and $@ are not put into double quotes(" ")-------
@ 'aa'
@ 'bb'
@ 'cc'
* 'aa'
* 'bb'
* 'cc'
更多的Shell脚本例子:
#!/bin/bash
set 'apple pie' pears peaches
for i in $* #单引号被去掉,循环单个字符输出#
do echo $i
done
[iyunv@localhost ceshi]# sh test1.sh
apple
pie
pears
peaches
--------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in "$*" #单引号被去掉,但当作字符串一次输出#
do echo $i
done
[iyunv@localhost ceshi]# sh test2.sh
apple pie pears peaches
-----------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in $@ #单引号被去掉,循环单个字符输出#
do echo $i
done
[iyunv@localhost ceshi]# sh test3.sh
apple
pie
pears
peaches
-----------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in "$@" #每个位置参数都将当成一个加引号的字符串:"apple pie","pears ","peaches"#
do echo $i
done
[iyunv@localhost ceshi]# sh test4.sh
apple pie
pears
peaches
-----------------------------------------------------------------
test5.sh
sum=0
for var
in "$@"
do
let sum=sum+$var
done
echo "sum=$sum"