网站首页 > 精选文章 / 正文
shell 开头
- 以sh后缀
- 开头#注释,表明采用何种解释器
#!/bin/bash
<<ABC
author:cheonghu
date:2020-05-06
desc:shell demo
ABC
文件权限
$ ll
total 4
-rw-r--r-- 1 root root 88 Apr 24 22:15 demo.sh
- 其中可以看到,demo.sh没有可执行权限;但是 bash demo.sh可以运行
$ ./demo.sh
-bash: ./demo.sh: Permission denied
$ bash ./demo.sh
shell demo
$ chmod 755 ./demo.sh
# or
$ chmod u+x ./demo.sh # 给当前拥有者添加可执行权限
$ ll
-rwxr--r-- 1 root root 88 Apr 24 22:15 demo.sh
条件判断
字符串非空
- n 测试是否为非空,推荐""
$ [ -n "$TEST" ] && echo Y || echo F
Y
- z 测试是否为空
$ [-z $TEST] && echo Y
字符串比较
$ [ $USER == root ]
# or
$ test $USER == root
整数比较
- -gt
$ [ 1 -gt 2 ]; echo $?
1
# $? 查看上一条命令结束码;0 正确 非0,false
- -eq
- -ne
- -lt
- -le
- -ge (大于或等于)
文件属性判断
- -e 文件或者目录是否存在
$ [ -e get.sh ] && echo "存在" || echo "不存在"
存在
- -d 判断存在且为目录
- -f
- -L 软连接 (类似快捷键,跨分区,但是删除不可用;硬链接,相反;)
- -p 管道
- -r 读权限
- -w 写权限
- -x 执行权限;root 也必须有x,才能执行
- -s 非空
[] 与 [[]]
- 通用
- 数值大小比较
$ [ 5 -gt 8 ]
$ [[ 5 -lt 8 ]]
- 字符串非空比较
$ [ -z "" ] && echo y || echo n
y
$ [ -n '13' ] && echo y || echo n
y
- 文件属性
$ [ 9.txt -nt get.sh ] && echo y || echo n
$ [[ 9.txt -nt get.sh ]] && echo y || echo n
- 不同
- 逻辑运算&&
$ [[ 5 == 9 && 5 == 4 ]] && echo y || echo n
n
# []使用&&
$[ 5 == 9 && 5 == 4 ] && echo y || echo n
-bash: [: missing `]'
$[ 5 == 9 -a 5 == 4 ] && echo y || echo n
n
- 逻辑运算||
$[[ 5 == 8 || 6 == 9 ]]
$[ 5 == 8 -o 6 == 9 ]
- 符号使用>,<
$[[ 5 > 9 ]] - 排序比较
$[ 5 > 9 ] - 部分支持
- 正则使用
# 仅仅是字符比较
$ test = '123'
$ [ $test == 1* ] && echo y || echo n
n
# 正则比较
$ [[ $test == 1* ]] && echo y || echo n
y
# a是否为数字
$ a=2
$[[ $a == [0-9] ]]&& echo y || echo n
y
- =~
# 正则匹配,是否包含0-9
$b='a23'
$[[ $b =~ [0-9] ]]&& echo y || echo n
y
Tags:le lt
猜你喜欢
- 2025-01-26 python散装笔记——15: 比较(python比较运算)
- 2025-01-26 C++语言的单元测试与代码覆盖率(c++单元测试工具有哪些)
- 2025-01-26 EP.小二雷:不希望朋CDEC 应更加冷静果断
- 2025-01-26 ARM体系结构(4)-ARM GNU汇编基本指令
- 2025-01-26 科龙空调:创造符合时代需求的“生活气候”
- 2025-01-26 双芯加持的专业人像手机!OPPO Reno8 Pro+评测
- 2025-01-26 写了Rust不安全代码怎么办?特斯拉工程师支了三招
- 2025-01-26 迈凯伦推出限量版570S 将亮相圆石滩车展
- 2025-01-26 FANUC系统与西门子系统的区别(西门子编程和发那科编程区别)
- 2025-01-26 一加 9 系列正式发布:骁龙 870/888 三旗舰