linux-shell-特殊变量

环境变量

使用env命令可以查看到当前工作环境下的环境变量

[root@VM_158_86_centos vbird]# env
XDG_SESSION_ID=665714
HOSTNAME=VM_158_86_centos
NVM_CD_FLAGS=
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=3000
SSH_TTY=/dev/pts/0
NVM_DIR=/root/.nvm
USER=root

环境变量$PATH

[root@VM_158_86_centos vbird]# echo $PATH
/root/.nvm/versions/node/v10.7.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

位置变量

$n    传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。

预定义变量

$0    当前脚本的文件名
$#    传递给脚本或函数的参数个数。
$*    传递给脚本或函数的所有参数。
$@    传递给脚本或函数的所有参数。可以当作数组用 被双引号(" ")包含时,与 $* 稍有不同
$?    上个命令的退出状态,或函数的返回值。
$$    当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。

exec:

#!/bin/bash
#expr表示后面的表达式为一个数学运算
#Let expressions 执行一个或多个表达式。表达式中的变量前不必有$.如果表达式中包含>了空格或其他特殊字符,则必须引起来。
let sum=$1+$2
#运算符+号前后必须加空格
sum_expr=`expr $1 + $2`
echo $sum
echo $sum_expr

echo "fileName:$0"
echo "this Shell PID:$$"
echo "first parameters:$1"
echo "second parameters:$2"
echo "all parameters:$*"
echo "all parameters array:$@"
echo "parameters numbers:$#"
echo "the previous command exec status:$?"

result:

[root@VM_158_86_centos vbird]# sh special_var.sh 1 2
3
3
fileName:special_var.sh
this Shell PID:4057
first parameters:1
second parameters:2
all parameters:1 2
all parameters array:1 2
parameters numbers:2
the previous command exec result:0
    原文作者:吴玉宏
    原文地址: https://segmentfault.com/a/1190000019506982
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞