$*不用雙引號的話循環(huán)輸出多個
老師好哈,我寫的for區(qū)分$*下面這樣也循環(huán)多次輸出呢,為啥啊
#!/bin/bash
#for區(qū)分$*和$@
? ? for i in $* ? #區(qū)別在這里,&*沒有雙引號,有了雙引號就循環(huán)一次,沒有則會多次 ? ? ?
? ? do
? ? ? ? ? ? echo "\$*:$i"
? ? done
? ? for j in $@ ? ? ? ??
? ? do
? ? ? ? ? ? echo "\$@:$j"
? ? done
? //運行結果如下
$*:11
$*:22
$*:33
$*:44
$@:11
$@:22
$@:33
$@:44
2016-01-07
#!/bin/bash
set 'apple pie' pears peaches
for i in $* /*單引號被去掉,循環(huán)單個字符輸出*/
do echo $i
done
[root@luozhonghua Ex_14.02-14.31]# sh 14-14-1
apple
pie
pears
peaches
--------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in "$*" /*單引號被去掉,但當作字符串一次輸出*/
do echo $i
done
[root@luozhonghua Ex_14.02-14.31]# sh 14-14-2
apple pie pears peaches
[root@luozhonghua Ex_14.02-14.31]#
-----------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in $@ /*單引號被去掉,循環(huán)單個字符輸出*/
do echo $i?
done
[root@luozhonghua Ex_14.02-14.31]# sh 14-14-3
apple
pie
pears
peaches
-----------------------------------------------------------------
#!/bin/bash
set 'apple pie' pears peaches
for i in "$@" /*每個位置參數都將當成一個加引號的字符串:"apple pie","pears ","peaches"*/
do echo $i
done
[root@luozhonghua Ex_14.02-14.31]# sh 14-14-4
apple pie
pears
peaches