1、规范shell
2、变量bash
练习:ide
#!bin/bash dir=`pwd` echo "当前所在的目录是:$dir"
#!bin/bash # 进入/etc目录下 cd /etc # 计算文件个数 num=`ls -al|wc -l` # 输出 echo "/etc下文件个数为:$num"
#!bin/bash read -p "请输入指定目录:" dir cd $dir # 计算文件个数 num=`ls -al|wc -l` # 输出 echo "$dir下文件个数为:$num"
read 用法函数
3、参数传递测试
练习:spa
#!/bin/bash echo "这个数据是$1" echo "这个数据是$2" echo "这是$0" echo "这是$@" echo "这是$#"
结果:3d
4、重定向code
把命令的结果输出到文件中blog
5、条件判断ip
一、if...else
if [ 条件 ] then 语句 else 语句 fi ##################### if [ 条件 ];then 语句 else 语句 fi
练习:
#!/bin/bash dir=/root command=`ls $dir` if [ "$command" == "" ];then echo "目录为空" else echo "目录不为空" fi
#!/bin/bash read -p "请输入目标目录:" dir command=`ls $dir` if [ "$command" == "" ];then echo "目录为空" else echo "目录不为空" fi
#!/bin/bash read -p "请输入用户名和密码:" username password if [ "$username" == "admin" -a "$password" == "123456" ];then echo "用户名和密码正确" else echo "用户名或密码不正确" fi
#!/bin/bash read -p "请输入一个数字:" num if [ "$num" -gt 0 ] then ((num++)) echo $num else ((num--)) echo $num fi
#!/bin/bash read -p "请输入对应的目录:" dir if test -d $dir then num=`ls $dir|wc -l` echo "目录$dir下的文件个数为:$num" else echo "目录$dir不存在" fi
二、if...elif..else
if [ 条件 ] then 语句 elif [ 条件 ] then 语句 elif [ 条件 ] then 语句 .... else 语句 fi
练习:
判断学生的成绩,范围在90-100提示优秀,80-90之间提示良好,70-80之间则提示通常,60-70之间提示及格。其余则提示不及格
#!/bin/bash read -p "请输入学生的成绩:" score if [ "$score" -gt 90 -a "$score" -lt 100 ] then echo "优秀" elif [ "$score" -gt 80 -a "$score" -lt 90 ] then echo "良好" elif [ "$score" -gt 70 -a "$score" -lt 80 ] then echo "通常" elif [ "$score" -gt 60 -a "$score" -lt 70 ] then echo "及格" else echo "不及格" fi
判断用户输入的内容是否为空,为空则提示,不为空则判断是否为目录,不为目录则判断是否为文件,不然提示错误信息
#!/bin/bash read -p "请输入内容:" content if [ -z "$content" ] then echo "输入内容为空" elif [ -d "$content" ] then echo "是一个目录" elif [ -f "$content" ] then echo "是一个文件" else echo "输入错误" fi
三、case
case $变量名 in "值") 语句;; "值") 语句;; "值") 语句;; ..... *) 语句;; esac
练习:
#!/bin/bash read -p "请输入产品编号:" chr case $chr in "001") echo "台灯";; "002") echo "风扇";; "003") echo "电脑";; *) echo "默认是空调";; esac
#!/bin/bash read -p "请输入对客服的满意度:" chr case $chr in [0-3]) echo "不满意";; [4-6]) echo "满意";; [7-9]) echo "很是满意";; esac
6、循环
一、for
for 变量名 in 列表 do 语句 done
练习:
#!/bin/bash #循环 for i in 1 2 3 4 5 6 7 8 9 10 do echo $i done
#!bin/bash for i in `seq 1 2 10` do echo $i done
二、while
while [ 条件 ] do 命令 done
练习:
#!bin/bash i=1 sum=0 while [ "$i" -le 100 ] do ((sum=sum+i)) ((i++)) done echo $sum
7、函数
函数名(){
代码
}
练习:
#!/bin/bash # 定义函数 add(){ sum=$(($1+$2)) return $sum } # 从键盘输入 read -p "请输入第一个数字:" aNum read -p "请输入第一个数字:" bNum echo "输入的两个数分别为:$aNum 和 $bNum" add $aNum $bNum # 输出返回值 echo "两个数之间的和为:$?"
输入一个目录,判断目录是否存在,若是不存在则给出提示,若是存在则提示输入要建立的文件名,判断建立的文件是否存在,若是不存在,则继续建立,不然提示该文件已经存在,用函数实现
#!/bin/bash # 建立文件函数 create_file(){ # 进入目录 cd $1 # 提示用户输入文件名 read -p "请输入须要建立的文件名:" filename # 判断文件是否存在 if test -e $filename then echo "文件已存在" else echo "文件不存在" echo "开始建立文件..." touch $filename echo "文件建立成功" fi } # 提示用户输入 read -p "请输入目录名:" dir if test -d $dir then # 调用建立文件函数 create_file $dir else echo "目录$dir不存在" fi