bash脚本中$@和$*的区别
发布时间:2020-12-15 21:54:34 所属栏目:安全 来源:网络整理
导读:参见英文答案 Parsing/passing command line arguments to a bash script – what is the difference between “$@” and “$*”?????????????????????????????????????3个 我是bash的新手,我正在学习它,我怀疑使用$@和S *之间的真正区别. 我在这里红了Bash
参见英文答案 >
Parsing/passing command line arguments to a bash script – what is the difference between “$@” and “$*”?????????????????????????????????????3个
我是bash的新手,我正在学习它,我怀疑使用$@和S *之间的真正区别. 我在这里红了Bash Special Parameters 我知道两者都扩展到位置参数,但差异发生在双引号内. 我尝试用一??个简单的脚本来理解它: if [ $# -gt 0 ]; then echo "Your command line contains $# arguments" else echo "Your command line contains no arguments" exit fi echo "Params are: " echo $@ echo $* echo "$@" echo "$*" 如果我在终端中执行我的脚本~~ / my_script par1 par2 par3 结果总是一样的: Params are: par1 par2 par3 par1 par2 par3 par1 par2 par3 par1 par2 par3 也许我不明白这两个特殊变量的实际用途以及我的例子是否正确.我想用一个很好的例子来弄清楚这一点. 解决方法
从
http://tldp.org/LDP/abs/html/refcards.html开始:
此代码显示:给定一个字符串,其中的项目用空格分隔,$@将每个单词视为一个新项目,而$*将它们全部视为相同的参数. echo "Params for: $@" for item in "${@}" do echo $item -- done echo "Params for : $*" for item in "${*}" do echo $item -- done 测试: $./a par1 par2 par3 Your command line contains 3 arguments Params for: $@ par1 -- par2 -- par3 -- Params for : $* par1 par2 par3 -- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |