hsfl.net
当前位置:首页 >> shEll脚本中最后的$*是什么意思呢 >>

shEll脚本中最后的$*是什么意思呢

举例说: 脚本名称叫test.sh 入参三个: 1 2 3 运行test.sh 1 2 3后 $*为"1 2 3"(一起被引号包住) $@为"1" "2" "3"(分别被包住) $#为3(参数数量)

我没用过$@,但是可以自己写个脚本测试下。 先介绍下我知道的,如下: 位置变量 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0显示运行的脚本,$1...显示位置参数的值 预定义变量: $# 表示位置参数的数量 $* 表示所有位置参数的内容 $? 表示命令执行后返...

举例说: 脚本名称叫test.sh 入参三个: 1 2 3 运行test.sh 1 2 3后 $*为"1 2 3"(一起被引号包住) $@为"1" "2" "3"(分别被包住) $#为3(参数数量)

相同点:都是引用所有参数 不同点:只有在双引号中体现出来 假设你的脚本运行时你写了三个参数 分别存储在$1 $2 $3中 则"$*" 等价于 “$1 $2 $3" ---》传递了一个参数 而“$@" 等价于 "$1" "$2" "$3" ---》传递了三个参数

$*是此行命令所在函数(脚本)的所有被传入参数的合集 与$@类似,不用引号的情况下没有区别 区别是当被""扩起来以后 "$*"被当做一个字符串 "$@"被当做n个字符串(n=参数个数) for 是循环语句 意思就是,当file取每一个参数的值时,执行do后面的循环体 ...

$*是传递给脚本(或方法)的所有参数 $# 是传给脚本的参数个数 $@ 是传给脚本的所有参数的列表 $0 是脚本(或方法)本身的名字 $1是传递给该shell脚本(或方法)的第一个参数 $2是传递给该shell脚本(或方法)的第二个参数 还有其他内容请看参考...

精确来讲,两者只有在 soft quote 中才有差异,否则,都表示"全部参数"( $0 除外)。 若在 command line 上跑 my.sh p1 "p2 p3" p4 的话, 不管是 $@ 还是 $* ,都可得到 p1 p2 p3 p4 就是了。 但是,如果置於 soft quote 中的话: "$@" 则可得到...

给你个全的,你在Linux环境下多试下就明白了: $0 这个程式的执行名字 $n 这个程式的第n个参数值,n=1..9 $* 这个程式的所有参数,此选项参数可超过9个。 $# 这个程式的参数个数 $$ 这个程式的PID(脚本运行的当前进程ID号) $! 执行上一个背景指令...

1、$0 $0指的是这个bash的文件名。2、$? $?指的是上一指令的返回值。3、$* $*指的是所有位置参数的内容:就是调用调用本bash shell的参数。4、$@ $@的功能基本上与$*是相同。只不过“$*”返回的是一个字符串,字符串中存在多外空格,而“$@”返回多...

$? 上个命令的退出状态,或函数的返回值。 例子1 : ls 命令没有找到匹配的结果. 所以返回2 $? 就是2 [root@sg-rhel6-17 etc]# ls /tmp/*.log ls: cannot access /tmp/*.log: No such file or directory [root@sg-rhel6-17 etc]# echo $? 2 例子2...

网站首页 | 网站地图
All rights reserved Powered by www.hsfl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com