在bash shell里 $0 $? $* $@ 各表示什么意思?


$0就是该bash文件名,

$?是上一指令的返回值,

$*所有位置参数的内容:就是调用调用本bash shell的参数。

$@基本上与上面相同。

“$*”返回的是一个字符串,字符串中存在多外空格。

“$@”返回多个字符串。

扩展资料:

bash shell 的内置命令: type

语法:type [-tpa] name

参数晌尺销:

type: 不加任困亮何参数时, type会显宴游示name是外部命令还是bash内置命令

-t:   当加入-t 参数时, type会将name以下面这些字眼显示出它的意义:

file:表示为外部命令;

alias: 表示该命令为命令别名所设置的名称

builtin : 表示该命令为bash内置的命令功能

-p:  如果后面接的name为外部命令时, 才会显示完整文件名

-a :会由PATH变量定义的路径中,将所有含name的命令都列出来,包含alias

type主要在找出“执行文件”而不是一般文件名。所以,这个type也可以用来作为类似which命令的用途。


1、$0

$0指的是这个搭余bash的文件名。
2、$?

$?指的是上一指令的返回值。
3、$*

$*指的是所有位置参数的内容:就是调用调用本bash shell的参数。
4、$@

$@的功能基本上与$*是相同。只不过“$*”返回的是一个字符串,字符串中存在多外空格,而“$@”返回多个字符串。

扩展资料:

bash参数说明:

1、-c字符串

若用-c参数,则bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数。

2、-i

若用-i参数,知冲滚则bash是交互的。

3、-s

若用-s参数,则bash从标准输入中读入命令(在执行完-c带的命令之后。)直到输入exit。

4、-

单一的号表明参数执行完毕,并且屏蔽此后所跟参数,后面的所有变量都被看作是文件名。

5、-norc

如果bash是交互的,则不执行个人初始化文件:-/.bashrc,如果bash作为sh来运行,这个参数缺省是关闭的。

6、-noprofile

不执行系统范围的启动文件/etc/profile也不执行个人的启动文件-/.bash_profile,-/.bash_login或-/.profile,缺省情况下,bash作为登录的shell时以这些文件作为启动文件。

7、--refile文件名

如果bash是交互的,则以此判腊文件作为bash的启动文件。替代-/.bashrc。

8、-version

在bash开始时显示此bash的版本号。

9、-quiet

不显示版本号和其他信息,这是缺省值。

10、-login

激活bash,伪装为登录shell。

11、-nobraceexpansion

不执行大括号扩展。

12、-nolineediting

在交互状态下不使用GNU的readline库去读取命令。即取消了命令行编辑功能。

13、-posix

改变bash的行为,使其符合Posix 1003.2规定的标准。

参考资料:百度百科-bash


$0就是轮仔该bash文件名
$?是上一指令的返回值
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。只不过是
“$*”返回的手桐弊是一个字符串,字符串中存在多外空格。
“$@”返回多个字符毕族串。
$0就是该bash文孙肢件名
$?是上一指令的返回值
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。只不过是
“$*”返回的是一个字符串,字符串中存在多燃察外空格。
“$@”返回多个字符串。

还有$#返回所皮凯茄有位置参数的个数。