Shell扩展(Shell Expansions)-参数扩展(Shell Parameter Expansion)
从一个脚本开始 在php-docker中可以发现一个docker-php-entrypoint.sh脚本,内容如下 #!/bin/sh set -e # first arg is `-f` or `--some-option` if [ "${1#-}" != "$1" ]; then set -- php-fpm "$@" fi exec "$@" 简单解释一下这个脚本涉及到的几个知识点,并引出本文要介绍的Shell Parameter Expansion概念 特殊变量$@ $@ 属于shell脚本中几个特殊参数中的一个,代表了传递给脚本的所有参数,同时还有其他一些特殊变量可以参考文档Special Parameters 我这里列举如下 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数:"$1", "$2", "$3", 每个变量是独立的。 $@ 传递给脚本或函数的所有参数:"$1 $2 $3",代表 $? 上个命令的退出状...