合肥商城网站建设多少钱,广东省一流高职院校建设专题网站,软文是什么意思通俗点,wordpress标签页面模板简介 分别盘点一下 shell 中的内置变量#xff0c;真的巨好用#xff01;#xff01;#xff01;包括#xff1a;环境变量类、shell 变量类、终端设置类和其他一些变量。 常用的内置变量目录如下
1. 环境变量类
$MACHTYPE#xff1a;机器类型
$OSTYPE#xff1a;操作…简介 分别盘点一下 shell 中的内置变量真的巨好用包括环境变量类、shell 变量类、终端设置类和其他一些变量。 常用的内置变量目录如下
1. 环境变量类
$MACHTYPE机器类型
$OSTYPE操作系统类型
$HOSTNAME当前主机名
$HOME当前用户家目录
$USER当前用户名
$SHELL当前shell的路径
2. shell 变量类
$PWD当前目录
$OLDPWD上一个工作目录
$?上一个命令的状态码
$0当前 shell 脚本名称
$$当前 shell 脚本 PID
$PPID当前 shell 脚本的父ID
$IFS字段分隔符
3. 终端类
$TERM终端的类型
$PS1设置终端提示符
$PS2设置终端多行提示符
$COLUMNS终端的宽度
$LINES终端的高度
4. 其他变量
$RANDOM随机数
$SECONDSshell 脚本启动的秒数 1. 环境变量类
$MACHTYPE机器类型
echo $MACHTYPE $OSTYPE操作系统类型
echo $OSTYPE $HOSTNAME当前主机名
echo $HOSTNAME $HOME当前用户家目录
$HOME 表示当前用户的家目录
echo $HOME 当使用 su 命令切换到另一个用户也能够识别当前用户的家目录 $USER当前用户名
$USER 表示当前用户的名称
echo $USER 当使用 su 命令切换到另一个用户也能够识别当前用户名 $SHELL当前shell的路径
这个 shell 的路径是指系统 shell 的路径
echo $SHELL 2. shell 变量类
$PWD当前目录
$PWD 表示当前终端的路径不是脚本的路径
echo $PWD 如果需要获取脚本的路径可以这样写
path$(dirname realpath ${BASH_SOURCE}) $OLDPWD上一个工作目录
$OLDPWD 用来获取上一个工作 目录 $?上一个命令的状态码
状态码的范围是 0~255
0: 表示命令成功执行。
1-125: 表示命令执行失败或出现错误。
126: 表示命令不可执行。可能是因为权限不足或命令无法找到等原因。
127: 表示命令未找到。通常是因为找不到执行的命令或脚本。
128: 表示命令因为收到了一个信号而退出。
130: 表示命令因为收到了 SIGINT 信号而中断。类似于键盘上按下 CtrlC 中断命令的情况。
137: 表示命令因为收到了 SIGKILL 信号而被终止。
255: 表示状态码超出了范围。 $0当前 shell 脚本名称
echo $0 $$当前 shell 脚本 PID
echo $$ $PPID当前 shell 脚本的父ID
echo $PPID
我们来查询一下脚本自己的 PID 和父 ID
echo 父ID: $PPID, 自己PID: $$
ps -ef |grep $PPID |grep -v grep $IFS字段分隔符
设置字段分隔符
IFS # 设置分隔符为空格
IFS, # 设置分隔符为逗号
IFS: # 设置分隔符为冒号
IFS\t # 设置分隔符为制表符
IFS\n # 设置分隔符为换行
IFSabc # 设置分隔符为字符串
IFS ;\t # 设置多个分隔符 比如 for 循环一个字符变量
strAAA BBB,CCC
IFS,
for i in ${str};do echo ${i} ;done 3. 终端类
$TERM终端的类型
用于指定当前终端所使用的终端类型 $PS1设置终端提示符
$PS1 用于定义命令提示符格式可以通过修改环境变量的值来自定义。
比如我当前的提示是这样的 【用户名】【主机名】【目录名】 查看一下当前的设置 我们来自定义设置一下
【案例一】显示用户名、主机名和工作目录
export PS1\u\h:\w$ 【案例二】只显示工作目录
export PS1\w$ 【案例三】自定义提示符颜色
export PS1\[\033[01;32m\]\u\h:\w\[\033[00m\]$ 详细的转译序号说明如下
# 用户名和主机信息
\u当前用户名
\h短主机名
\H完整主机名包括域名
\12小时制的时间格式HH:MM am/pm
\A24小时制的时间格式HH:MM
# 工作目录信息
\w完整工作目录路径
\W当前工作目录的基名
\d当前日期格式Weekday Month Day
# 控制文本颜色
\033[0m重置所有文本属性包括颜色。
\033[30m 到 \033[37m设置文本前景色即文本的颜色范围从黑色到白色。
\033[40m 到 \033[47m设置文本背景色范围从黑色到白色。# 控制文本样式
\033[1m设置粗体样式。
\033[4m设置下划线样式。
\033[7m设置反色样式即文本背景色与前景色交换。# 控制光标位置
\033[A将光标上移一行。
\033[B将光标下移一行。
\033[C将光标向右移动一格。
\033[D将光标向左移动一格。 $PS2设置终端多行提示符
先看一下默认的多行提示符 设置多行提示符
export PS2 $COLUMNS终端的宽度
echo $SECONDS
手动调整终端宽度也会使变量发生变化 通过获取终端宽度 可以根据情况输出满屏的字符。
perl -E say x ${COLUMNS} $LINES终端的高度
echo ${LINES}
根据当前高度获取 通过获取终端高度输出满屏的符号
for ((i1; iLINES; i));do perl -E say - x ${COLUMNS} ;done 4. 其他变量
$RANDOM随机数
0~32767 之间到随机数 如果想控制随机数在 0~100试试取余的方法
echo $((RANDOM % 100)) $SECONDSshell 脚本启动的秒数
sleep 3
echo $SECONDS 如果直接在终端输出则显示终端启动的秒数