shell编程常见系统变量
命令 | 功能 |
---|---|
$0 | 当前脚本名称 |
$? | 命令或程序执行完后的状态,返回0则表示执行成功 |
$n | 当前脚本的第n个参数,n=1,2,…9 |
$# | 当前脚本的参数个数(不包括程序本身) |
$* | 当前脚本的所有参数(不包括程序本身) |
$$ | 程序本身的PID号 |
shell编程常见环境变量
命令 | 功能 |
---|---|
PATH | 命令所示路径,以冒号为分割 |
PWD | 显示当前所在路径 |
USER | 打印当前用户名 |
ID | 打印当前用户id信息 |
TERM | 打印当前终端类型 |
HOME | 打印用户家目录 |
if条件语句
格式:
if(表达式)
语句 1
else
语句 2
fi
if常见的判断逻辑运算符
命令 | 功能 |
---|---|
-f | 判断文件是否存在,例如:if [-f filename] |
-d | 判断目录是否存在,例如:if [-d dir] |
-eq | 等于,应用于整型比较,即 equal |
-ne | 不等于,应用于整型比较,即 not equal |
-lt | 小于,应用于整型比较,即letter |
-gt | 大于,应用于整型比较,即greater |
-le | 小于或等于,应用于整型比较 |
-ge | 大于或等于,应用于整型比较 |
-a | 双方都成立(and),逻辑表达式 |
-o | 单方成立(or),逻辑表达式 |
-z | 空字符串 |
丨丨 | 单方成立 |
&& | 双方都成立 |
if判断括号区别
样式 | 功能 |
---|---|
() | 用于多个命令组、命令替换、初始化数组 |
(()) | 整数扩展、运算符、重定义变量值,算数运算比较 |
[ ] | bash内部命令,“[”与test是等同的,正则字符范围、引用数组元素编号,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用-a,-o |
[ [ ] ] | bash程序语言关键字,不是一个命令,[ [ ] ]结构比[ ]结构更加通用,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用&&、 丨丨 |
{ } | 主要用于命令集合或者范围,例如:mkdir -p /data/201{7,8}/ |
for循环语句
格式:
for var in (表达式)
do
语句1
done
案例:for循环求1~100的总和
#!/bin/bash
j=0
for ((i=1;i<101;i++))
do
j=`expr $i + $j`
done
echo $j
while循环语句
格式:
while (表达式)
do
语句1
done
案例:
while循环求1~100的总和
#!/bin/bash
j=0
i=1
while ((i<101))
do
j=`expr $i + $j`
((i++))
done
echo $j
case选择语句
格式:
case $1 in
Pattern1)
语句1
;;
Pattern2)
语句2
;;
Pattern3)
语句3
;;
esac
案例:自动修改IP脚本菜单
#!/bin/bash
case $i in
modify_ip)
change_ip
;;
modify_hosts)
change_hosts
;;
exit)
exit
;;
*)
echo -e "1) modify_ip\n2) modify_ip\n3) exit"
exac