【11.19】shell (上)
5.29 shell脚本中的变量
- 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
- 使用条件语句时,常使用变量 if [ $a -gt 1 ]; then … ; fi
- 引用某个命令的结果时,用变量替代 n=`wc -l 1.txt`
- 写和用户交互的脚本时,变量也是必不可少的 read -p "Input a number: " n; echo $n 如果没写这个n,可以直接使用 $REPLY
- 内置变量 $0, $1, $2… $0表示脚本本身,$1 第一个参数,$2 第二个 … $# 表示参数个数
- 数学运算 a=1;b=2; c=$(($a+$b))或者$[$a+$b]
5.30 shell中逻辑判断
- 格式1:if 条件;then 语句;fi
[root@alexis-01 ~]# vim 01.sh
#/bin/bash
a=5
if [ $a -gt 3 ]
then
echo ok
fi
- 格式2:if 条件;then 语句;else 语句;fi
[root@alexis-01 shell]# vim 02.sh
#/bin/bash
a=1
if [ $a -gt 3 ]
then
echo ok
else
echo not ok
fi
[root@alexis-01 shell]# sh -x 02.sh
+ a=1
+ '[' 1 -gt 3 ']'
+ echo not ok
not ok
- 格式3:if …;then …;elif …;then …;else …;fi
[root@alexis-01 shell]# vim 03.sh
#/bin/bash
a=3
if [ $a -gt 4 ]
then
echo ">4"
elif [ $a -lt 6 ]
then
echo "<6 && >1"
else
echo not ok
fi
[root@alexis-01 shell]# sh -x 03.sh
+ a=3
+ '[' 3 -gt 4 ']'
+ '[' 3 -lt 6 ']'
+ echo '<6 && >1'
<6 && >1
[root@alexis-01 shell]# vim 03.sh
#/bin/bash
a=5
if [ $a -lt 4 ]
then
echo "<4"
elif [ $a -gt 6 ]
then
echo ">6"
else
echo not ok
fi
[root@alexis-01 shell]# sh -x 03.sh
+ a=5
+ '[' 5 -lt 4 ']'
+ '[' 5 -gt 6 ']'
+ echo not ok
not ok
-
逻辑判断表达式:
if [ $a -gt $b ]; -gt (>); 大于
if [ $a -lt 5 ]; -lt(<); 小于
if [ $b -eq 10 ]等 -eq(==); 等于
-le(<=);-ge(>=); -ne(!=) 注意到处都是空格 -
如果非要用 > < ,可以用(( ))
[root@alexis shell]# if (($a>1));then echo ok;fi
ok
- 可以使用 && || 结合多个条件
if [ $a -gt 5 ] && [ $a -lt 10 ]; then 并且
if [ $b -gt 5 ] || [ $b -lt 3 ]; then 或者
5.31 if判断文件目录属性
选项 | 含义 |
---|---|
[ -f file |