Bash脚本-GNU/Linux 系统提供的变量$
原创
©著作权归作者所有:来自51CTO博客作者WongKyunban的原创作品,请联系作者获取转载授权,否则将追究法律责任
什么是脚本呢?话剧的脚本、电视的脚本就是告诉演员说什么,做什么动作等。Bash脚本也是同理,它告诉GNU/Linux系统显示什么、做什么事情…
Bash脚本中的变量是用来临时存储一些信息用的。除了我们自行定义的变量外,GNU/Linux系统也提供了一些变量给我们使用,我们可以通过以下方式使用它们:
- $0 :通过0变量可以获取Bash脚本的文件名
- $1 - $9 :通过1到9变量,可以依次取得传递给脚本的第1到第9个参数。
- $#:通过#变量,可以获得传递给脚本的参数的个数
- $@:通过@变量,可以获得所有传递给脚本的参数
- $?:通过?变量可以获得最近运行的程序的退出状态,如:
num_a=100
num_b=200
echo "Is $num_a equal to $num_b?"
[ $num_a -eq $num_b ]
echo
- $$:通过$变量可以获得运行当前脚本的进程ID
- $USER:通完USER变量可以获得运行当前脚本的用户名
- $HOSTNAME :通过HOSTNAME可以获得运行脚本的主机名称
- $SECONDS:通过SECONDS变量可以获得从脚本开始执行到结束所经过的时间。
- $RANDOM:通过RANDOM变量可以获得一个随机数
- $LINENO:通过LINENO变量可以获得当前行的行号。
GNU/Linux系统的环境变量可以通过$号加环境变量名来引用。可以在terminal终端输入env命令查看有哪些环境变量可用:
MacBook-Pro:Desktop mac$ env
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/lh/2rppj_514v5cs8_m66xx5f1m0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.gUmqj2FyQp/Render
TERM_PROGRAM_VERSION=404.1
OLDPWD=/Users/mac
TERM_SESSION_ID=30B2C135-BCFC-4B3D-95C3-B8F2B85FB469
USER=mac
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.O4jsP100rY/Listeners
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/tools:/Users/mac/Library/Android/sdk/tools/bin:/Users/mac/Library/Android/sdk/platform-tools
ANDROID_SDK_HOME=/Users/mac/Library/Android/sdk
PWD=/Users/mac/Desktop
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/mac
LOGNAME=mac
LC_CTYPE=UTF-8
_=/usr/bin/env
如引用:$HOME