type
status
date
slug
summary
tags
category
icon
password
在看apisix-dashborad的项目时,发现入口的脚本我都没懂啥意思,赶紧查一下shell中各个参数的含义。
含义
- $0 当前进程的名字
- $n 当前进程的第n个参数值,n的取值范围为1~9
- $* 当前进程的所有参数,可以超过9个
- $# 当前进程的参数个数
- $$ 当前进程的PID
- $! 后台运行的上一个进程的pid,比如直接打开一个终端,它的前一个进程pid是0
- $? 执行的上一条指令的返回值(显示上一条命令的退出状态。0表示没有错误,其他返回值对应的错误在Linux中可以用errno对比)
- $- 显示shell使用的当前选项,与set命令功能相同
- @跟类似,但是可以当做数组使用
$* 和 $@的区别
在没有使用双引号的情况下,这两种使用方式是一致的,每一个参数都是独立的个体;而在使用双引号的情况下则不同, * 会把所有的参数视为一个整体,输出是也是一个整体,而@依然是将每一个参数视为独立的个体。执行下面的两个脚本,就可以看出不同。
不带引号:
输出:
带引号:
输出:
- 作者:阿杰鲁
- 链接:http://blog.zaunist.com/article/397481fa-7b42-4c74-b0cb-f0c68db8a465
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。