Shell脚本基础语法
· 阅读需 2 分钟
阅读量: 101 阅读人次: 102
基本在所有的项目中都能见到shell脚本的身影。
$0
:当前脚本的文件名
$n
:传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$#
:传递给脚本或函数的参数个数。
$*
:传递给脚本或函数的所有参数。
$@
:表示所有脚本参数的内容
$*
和$@
的区别:$*
和$@
都表示传递给函数或脚本的所有参数,不被双引号(" “)包含时,都以”$1" “2"…"2"…"n” 的形式输出所有参数。当它们被双引号(" “)包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n"的形式输出所有参数;"n"的形式输出所有参数;"@" 会将各个参数分开,以"$1" “2"…"2"…"n” 的形式输出所有参数。
$?
:上个命令的退出状态,或函数的返回值。
$$
:当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
BASH_SOURCE[0]
等价于BASH_SOURCE
, 取得当前执行的shell文件所在的路径及文件名。
# -f 文件存在
if[ -f /etc/sysconfig/network ]; then
./etc/sysconfig/network
fi
# -z 字串为空/ -o or / -a and
if[ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then
HOSTNAME=localhost
fi
# -e filename 如果 filename存在,则为真
if [ ! -e /proc/mounts ]; then
mount -n -t proc /proc /proc
fi
# -d 目录存在
if [ ! -d /proc/bus/usb ]; then
modprobe usbcore >/dev/null 2>&1
else
mount ...
fi