在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
$?是上一指令的返回值
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。只不过是
“$*”返回的是一个字符串,字符串中存在多外空格。
“$@”返回多个字符串。
$?是上一指令的返回值
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。只不过是
“$*”返回的是一个字符串,字符串中存在多外空格。
“$@”返回多个字符串。
还有$#返回所有位置参数的个数。