prss.net
当前位置:首页 >> linux shEll 中这两个$* $@有啥区别呀.. >>

linux shEll 中这两个$* $@有啥区别呀..

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

$? 表示上一行命令运行后的返回值 $* 表示传入脚本的所有参数数组 $# 表示传入脚本的参数的个数

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

美元符加字符串是引用变量值,而美元符加数字表示命令行参数。比如: bash$ ./hello.sh build test 脚本中$0的值就是./hello.sh,$1的值是build,$2的值是test。 bash$ list.sh -sh --debug /home/user 脚本中$0的值就是list.sh...

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

举例说: 脚本名称叫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...显示位置参数的值 预定义变量: $# 表示位置参数的数量 $* 表示所有位置参数的内容 $? 表示命令执行后返...

首先, shell要有运行的权限,比如chmod 700 abc.shell 或者 chmod 777 abc.shell。 700 770 777的区别你可以百度一下相关知识。 然后,执行的方法,一种是直接打绝对路径 ,如 /a/b/c/d/e/f/abc.shell,另一种就是cd /a/b/c/d/e/f/,然后再 ./a...

恩?修改了shell,直接运行就可以了嘛!比如说hello.sh,进入hello.sh的目录,输入./hello.sh就行了。 感觉问的有点怪,如果你是修改了shell的配置文件,比如说.bash_profile等文件的话,要立即生效,就要输入source .bash_profile,这样在.bash...

一般来说,shell可以分成两类。第一类是由Bourneshell衍生出来的包括 sh,ksh,bash,与zsh。第二类是由Cshell衍生出来的,包括csh与 tcsh。除此之外还有一个rc

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