shell学习之常见系统变量

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

image-20200426230525283

实例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

image-20200426233327039

补充一下,写几个参数

./shell.sh p1 p2 p3 p4 p5

image-20200426233019108

注意

单引号:

  即将单引号中内容原样输出

双引号:

  把双引号内的内容输出出来;如果内容中有命令,变量等,会先把变量,命令解析出结果,然后在输出最终内容来。

  双引号内命令或变量的写法为命令或变量或$(命令或变量)。

补充运行结果

posted @ 2020-04-26 23:44  何止(h3zh1)  阅读(504)  评论(0编辑  收藏  举报