www.yznl.net > 在BAsh shEll里 $0 $? $* $@ 各表示什么意思?

在BAsh shEll里 $0 $? $* $@ 各表示什么意思?

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

$是bash中的特殊符号,一般放在变量名前面表示引用这个变量,其他还有很多用处,比如字符串处理等; $*一般用来表示传递给脚本或函数的所有参数。但是也可以用来表示变量分词之后的上下文内容。

我没用过$@,但是可以自己写个脚本测试下。 先介绍下我知道的,如下: 位置变量 :$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(参数数量)

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

上面的都对。 补充: 在BASH里,$?==0表示上个语句成功执行。

叹号at 井号 叹号 叹号 美元 井号 星号 前括号 后括号 星号 百分比 下划线 叹号 美元 星号 前括号 星号 叹号 百分比 And 百分比 后括号 叹号 加号 翻译完毕。 - -#

你只要定义PS1到配置文件里就可以了 [root@web ~]# echo $PS1 [\u@\h \W]\$ [root@web ~]# export PS1="[\u@\h \W]\$" [root@web ~]$

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

网站地图

All rights reserved Powered by www.yznl.net

copyright ©right 2010-2021。
www.yznl.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com