linux基础(6)-shell编程
hell脚本
hell脚本程序:以文件形式存放批量的linux命令集合,该文件能够被shell释放执行。通常由一段linux命令、shell命令、控制语句以及注释语句构成。 shell脚本特点: 第一行需指定用哪个程序来编译和执行脚本,如#!/bin/bash 或者#!/bin/sh 通常shell脚本以.sh为后缀 shell脚本执行权限: 有执行权限,可以./filename.sh 无执行权限,可以sh filename.sh
变量与引用 定义变量 定义变量时变量名不加美元符号 注意等号两边不能有空格如:name="wujiadong" 变量名不能以数字开头 export命令可以使变量用于子进程 变量赋值时,若值中有空格,必须使用双引号括起来 使用变量 使用一个定义过的变量,只要在变量名前加美元符号。 显示变量:echo $name 或echo ${name} 清除变量:unset name
实例1
test11.sh
1 #!/bin/bash 2 v1="feigu" 3 export v2="wujiadong" #export命令可以使变量用于子进程 4 5 echo "显示v1:$v1" 6 echo "显示v2:$v2" 7 8 sh test12.sh
test12.sh
1 #!/bin/sh 2 echo "引用变量v1:$v1" 3 echo "引用变量v2:$v2"
执行sh.test11.sh
控制结构 判断 test -e filename 表示是否存在 -e 是否存在 -f 是否存在且为档案(file) -d 是否存在且为目录(directory) -r 是否存在且有可读权限 -w 是否存在且有可写权限 -x 是否存在且有可执行权限 两个数之间判断 :test n1 -eq n2 -eq 两数值相等(equal) -ne 两数值不等(not equal) -gt n1大于n2(greater than) -lt n1小于n2(less than) -ge n1大于等于n2(great than or equal) -le n1小于n2(less than or equal)
判断字符串的数据
test -z string 判断字符串是否为0,string为空字符串,则为true test -n string 判断字符串是否非为0,string为空字符串,则为false。注:-n可省略 test str1 = str2 判断str1是否等于str2,若相等,则回传true test str1 != str2 判断str1是否不等于str2,若相等,则回传false
if else
if 条件 then 命令 fi 或者 if 条件 then 命令1 else 命令2 fi 或者 if 条件1 then 命令1 elif 条件2 then 命令2 else 命令3 fi注意:这里elif是else if的缩写,但不支持else if的写法