先看下面的代码:
#!/bin/bash #看似一样的输出 echo "using the \$* method: $*" echo "using the \$@ method: $@" #循环,可看出两者的不同 count=1 for param in "$*" do echo "\$* parameter #$count = $param" count=$[ $count + 1 ] done count=1 for param in "$@" do echo "\$* parameter #$count = $param" count=$[ $count + 1 ] done echo $0 echo $1 echo $2 echo $3 echo $4 运行结果: $ sh input.sh w rtg yty iui uiuio using the $* method: w rtg yty iui uiuio using the $@ method: w rtg yty iui uiuio $* parameter #1 = w rtg yty iui uiuio $* parameter #1 = w $* parameter #2 = rtg $* parameter #3 = yty $* parameter #4 = iui $* parameter #5 = uiuio input.sh w rtg yty iui
如下知识点:
$*与$@都能获取全部的输入参数,但是$*是一个整体单一值,$@是一个数组
$0获取文件名
$1获取第一个参数,$n 以此类推
本文详细解释了bash脚本中$*与$@的区别,通过代码实例展示了两者获取参数方式的不同,并阐述了$0、$1等变量的作用。
2220

被折叠的 条评论
为什么被折叠?



