shell第一节,输出常见变量
运行方式shell_name.sh表示shell脚本的名字
sh shell_name.sh
bash shell_name.sh
./shell_name.sh
常见系统变量 | 变量解释 |
---|---|
$0 | 当前程序的名称 |
$n (n=1……9) | 第n个参数比如$1 、$2 |
$* | 当前程序所有的参数,不包括程序名称和程序内写好的参数,通过一个字符串返回 |
$@ | 输出所有的参数 |
$# | 当前程序的参数个数 |
$? | 最近一次执行的命令或shell脚本的出口状态,一般0为成功,其他是失败比如127 |
$USER | 当前用户名 |
$HOSTNAME | 显示当前主机名 |
$UID | 当前用户的id |
$PWD | 当前目录 |
$PATH | 命令搜索路径 |
$IFS | shell的分隔符 |
$HOME | 用户主目录路径名 |
$TERM | 终端类型 |
echo $LOGNAME | 登录名 |
实例demo.sh
#!/bin/bash
#author h3zh1:
A=h3zh1
echo "my name is $A"
echo "当前用户ID: $UID"
echo "当前目录: $PWD"
echo "当前程序名称: $0"
echo "第一个参数: $1, 第二个:$2"
echo "上一条命令执行状态,$? is $?"
echo "当前程序的参数个数,$# is $#"
echo "当前程序所有的参数,$* is $*"
传入9个参数:
./demo.sh param1 param2 param3 param4 param5 param6 param7 param8 param9
实例shell.sh
#!/bin/bash
#author h3zh1:
A=h3zh1
echo "my name is $A"
echo "当前程序名称: $0"
echo "当前程序的参数个数,$# is $#"
echo "当前程序所有的参数,$* is $*"
echo "其中第一个参数: $1, 第二个:$2"
echo "上命令执行状态,$? is $?"
echo "主机名:$HOSTNAME"
echo "当前用户ID: $UID"
echo "当前目录: $PWD"
echo "$HOME"
无参运行
sh shell.sh
补充一下,写几个参数
./shell.sh p1 p2 p3 p4 p5
注意
单引号:
即将单引号中内容原样输出
双引号:
把双引号内的内容输出出来;如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来。
双引号内命令或变量的写法为
命令或变量
或$(命令或变量)。