Linux Shell 符号及变量
Linux Shell About 2,005 words位置变量
| 运算符 | 解释 |
|---|---|
| $1 | 获取第一个参数 |
| $2 | 获取第二个参数 |
| $n | 获取第n个参数(n为数字) |
| ${1} | 获取第一个参数 |
预定义变量
| 运算符 | 解释 |
|---|---|
| $0 | 获取脚本名称 |
| $* | 获取所有参数 |
| $@ | 获取所有参数 |
| $# | 获取参数个数 |
| $$ | 获取当前进程的pid |
| $! | 获取上一个后台进程的pid |
| $? | 获取上一个命令的执行结果,0表示成功 |
逻辑运算符
| 运算符 | 解释 |
|---|---|
| -a | 逻辑与,and |
| -o | 逻辑或,or |
| ! | 非 |
文件比较运算符
| 运算符 | 解释 | 举例 |
|---|---|---|
| -e | 是否存在,exist | [ -e /var/log/messages ] |
| -f | 是否是文件,file | [ -f /var/log/messages ] |
| -d | 是否是文件夹,dir | [ -d /var/log ] |
| -r | 是否可读,read | [ -r /var/log/messages ] |
| -w | 是否可写,write | [ -w /var/log/messages ] |
| -x | 是否可执行,execute | [ -x /var/log/messages ] |
| -nt | 是否新于,new than | [ /usr/local/nginx/nginx.conf -nt /etc/nginx/nginx.conf ] |
| -ot | 是否旧于,old than | [ /usr/local/nginx/nginx.conf -ot /etc/nginx/nginx.conf ] |
算术比较运算符
| 运算符 | 解释 | 举例 |
|---|---|---|
| -eq | 相等,equal | [ "$var" -eq 0 ] |
| -ne | 不相等,not equal | [ "$var" -ne 0 ] |
| -gt | 大于,great than | [ "$var" -gt 0 ] |
| -ge | 大于等于,great equal | [ "$var" -ge 0 ] |
| -lt | 小于,less than | [ "$var" -lt 0 ] |
| -le | 小于等于,less equal | [ "$var" -le 0 ] |
字符串比较运算符
| 运算符 | 解释 | 举例 |
|---|---|---|
| -z | 判断字符串长度是否为0,zero | [ -z "$var" ] |
| -n | 判断字符串长度是否不为0,nonzero | [ -n "$var" ] |
| = | 判断两字符串是否相等 | [ "$var" = "abc" ] |
| != | 判断两字符串是否不等 | [ "$var" != "abc" ] |
获取长度
#var
定义var=www.sina.com.cn
| 命令 | 解释 | 输出 |
|---|---|---|
| ${#var} | 获取变量长度 | 15 |
变量内容删除
键盘上#在$左边,%在$右边,所以#从左往右删除,%从右往左删除。
定义var=www.sina.com.cn
#从左往右删除
#ww#*c##*.
| 命令 | 解释 | 输出 |
|---|---|---|
| ${var#ww} | 删除ww开头的若删除 sina则还是www.sina.com.cn |
w.sina.com.cn |
| ${var#*c} | 删除到第一个c为止,包括c最短匹配 |
om.cn |
| ${var##*.} | 删除到最后一个.为止,包括.最长匹配,贪婪匹配 |
cn |
%从右往左删除
- %.*
- %%.*
| 命令 | 解释 | 输出 |
|---|---|---|
| ${var%.*} | 删除右边起第一个.及其右边(注意:*在后) |
www.sina.com |
| ${var%%.*} | 删除到右边起最后一个.及其右边 |
www |
按索引和切牌你删除
:0:5:5
| 命令 | 解释 | 输出 |
|---|---|---|
| ${var:0:5} | 从第0个字符开始截取,取5位 | www.s |
| ${var:5} | 去除前5位 | ina.com.cn |
变量内容替换
/w/x//./#
定义var=www.sina.com.cn
| 命令 | 解释 | 输出 |
|---|---|---|
| ${var/w/x} | 替换一个w为x |
xww.sin.com.cn |
| ${var//./#} | 替换所有.为# |
www#sina#com#cn |
变量赋值
var-aaavar:-aaa
不定义var1
定义var2=222
定义var3=
| 命令 | 解释 | 输出 |
|---|---|---|
| ${var1-aaa} | 设置var1默认值为aaavar1没有初始化,所以赋值为aaa |
aaa |
| ${var2-bbb} | 设置var2默认值为bbbvar2有初始化值222,所以不再赋值 |
222 |
| ${var3-ccc} | 设置var3默认值为cccvar3有初始化值为空,所以不再赋值 |
空值 |
| ${var3:-ccc} | 设置var3默认值为cccvar3有初始化值为空,所以赋值为ccc |
ccc |
Views: 3,582 · Posted: 2019-08-09
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...