shell中$*与$@的区别

您所在的位置:网站首页 环境污染事故认定规范 shell中$*与$@的区别

shell中$*与$@的区别

2023-09-08 21:00| 来源: 网络整理| 查看: 265

关于$* 和 $@的 一点 认识 同是菜鸟一起学习 $* 所有的位置参数,被作为一个单词. 注意:"$*"必须被""引用. $@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递, 并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的 单词. 注意:"$@"必须被引用.

$@ $* 只在被双引号包起来的时候才会有差异 双引号括起来的情况: $*将所有的参数认为是一个字段 $@以IFS(默认为空格)来划分字段,如果空格在“”里面,不划分。采用LS的脚本运行./test 1 "2 3" 4   来发现差异 没有括起来的情况是$@和$*一样的,见到IFS就划分字段。还是采用LS的脚本运行./test 1 "2 3" 4   来发现差异

一个小例子 ,仅供参考 [Copy to clipboard] [ - ]CODE:#!/bin/bash echo index=1 echo "Listing args with\"\$*\":" for arg in "$*" do    echo "Arg #$index=$arg"    let "index+=1" done echo "所有的参数被认为是一个单词" echo index=1 echo "Listing args with \"\$@\":" for arg in "$@" do echo "Arg #$index=$arg" let "index+=1" done echo "所有的参数被认为是各个独立的单词" echo index=1 echo "Listing args with \$* (未被引用):" for arg in $* do echo "Arg #$index=$arg" let "index+=1" done echo "所有的参数被认为是各个独立的单词" exit 0 运行后输出为 [Copy to clipboard] [ - ]CODE:[root@localhost ABS]# ./test 1 2 3 4 Listing args with"$*": Arg #1=1 2 3 4 所有的参数被认为是一个单词 Listing args with "$@": Arg #1=1 Arg #2=2 Arg #3=3 Arg #4=4 所有的参数被认为是各个独立的单词 Listing args with $* (未被引用): Arg #1=1 Arg #2=2 Arg #3=3 Arg #4=4 所有的参数被认为是各个独立的单词 [ 本帖最后由 一路征程一路笑 于 2008-7-20 09:52 编辑 ]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3