shell之常用变量
1.常见系统预设变量
变量名 | 描述 |
---|
UID | 当前账户的账户ID |
USER | 当前账户的用户名 |
HISTSIZE | 当前终端最大记录历史命令数量(最多可以记录多少条历史命令) |
HOME | 当前账户的根目录 |
LANG | 当前环境使用的语言 |
PATH | 命令搜索路径 |
PWD | 返回当前工作目录 |
RANDOM | 随机返回0-32767的整数 |
$0 | 返回当前命令的名称 |
$n | 返回位置参数,如$1、$2等,数字大于9时必须使用${n} |
$# | 命令参数的个数(也叫位置变量的个数) |
$* | 命令行所有的参数($*所有的参数作为一个整体) |
$@ | 命令行所有的参数($@所有的参数作为独立的个体) |
$? | 返回上一条命令的退出状态,0正确,非0失败 |
$$ | 返回当前进程的进程号 |
$! | 返回最后一个后台进程的进程号 |
2.脚本执行示范
cat sys_var.sh
#!/bin/bash
#Author:hejing
#Date:2021-7-20
#Description:练习系统预设变量的使用
echo "当前账户是:$USER,当前账户的UID是:$UID"
echo "当前账户的根目录是:$HOME"
echo "当前工作目录是:$PWD"
echo "返回0-32767的随机数:$RANDOM"
echo "当前脚本的进程号是:$$"
echo "当前脚本的名称是:$0"
echo "当前脚本的第一个参数是:$1"
echo "当前脚本的第二个参数是:$2"
echo "当前脚本的第三个参数是:$3"
echo "当前脚本的所有参数是:$*"
echo "准备创建一个文件......."
touch "$*"
echo "准备创建多个文件......."
touch "$@"
echo "当前位置变量的个数是:$#"
ls /etc/passwd
echo "我是正确的返回码$?,因为上一条命令执行正确"
ls /etc/pass
echo "我是错误的返回码$?,因为上一条命令执行失败"
3.执行结果