个人整理shell脚本编程笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

shell脚本编程学习笔记(一)

一、脚本格式

vim shell.sh

#!/bin/bash//声明脚本解释器,这个‘#’号不是注释,其余是注释

#Program://程序内容说明

#History://时间和作者

二、shell变量的种类

用户自定义变量:由用户自己定义、修改和使用

与定义变量:Bash与定义的特殊变量,不能直接修改

位置变量:通过命令行给程序传递执行的参数

1、定义变量:

变量名要以英文字母或下划线开头,区分大小写。

格式:变量名=值

输出变量:echo $变量名

2、键盘输入为变量内容:

格式:read [-p "信息"] 变量名

如:read -p "pewase input your name:" name

3、不同引号对变量的作用

双引号"":可解析变量,$符号为变量前缀。

单引号'':不解析变量,$为普通字符。

反引号``:将命令执行的结果输出给变量。

三、shell条件测试

1、test命令:

用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数字。

格式:test 条件表达式[ 条件表达式] (注意:[]与表达式之间存在空格)

2、常见的测试类型:

测试文件状态

格式:[ 操作符文件或目录]

如:if [ -d /etc ]

then

echo "exists"

else

echo "not exists"

fi

常见的测试操作符:

-d:测试是否为目录

-e:测试目录或文件是否存在

-f:测试是否为文件

-r:测试当前用户是否有读权限

-w:测试当前用户是否有写权限

-x:测试当前用户是否有执行权限

-L:测试是否为符号链接文件

字符串比较

格式:[ 字符串1 = 字符串2 ]

[ 字符串1 != 字符串2 ]

[ -z 字符串]

如:read -p 'name:' name

read -p 'pass:' pass

if [ $name = 'admin' ] && [ $pass = '123']

then

echo '登录成功'

else

echo '登录失败'

if

常用的测试操作符:

=:字符串内容相同。

!=:字符串内容不同。

-z:字符串内容为空。

整数值比较

格式:[ 整数1 操作符整数2 ]

如:age=30

if [ $age -ge 18 ]

then

echo "已成年"

else

echo "未成年"

fi

常用的测试操作符:

-eq:等于

-ne:不等于

-gt:大于

-lt:小于

-le:大于或等于

-ge:小于或等于

逻辑测试

格式:[ 表达式1 ] 操作符[ 表达式2 ]

常用操作符:

-a或&&:逻辑与

-o或||:逻辑或

!:逻辑非

四、流程判断:

1、条件判断

a、if语句

格式:

单分支:

if 条件表达式

then 命令序列

fi

如:age=30

if [ $age -ge 18 ]

then

echo "已成年"

else

echo "未成年"

fi

多分枝:

if 条件表达式

then 命令序列

elif命令序列

fi

如:score=87

if [ $score -lt 60 ];then

echo '60以下'

elif [ $score -gt 60 ] && [ $score -lt 70 ];then

echo '60~70之间'

elif [ $score -ge 70 ] && [ $score -lt 80 ];then

echo '70~80之间'

else

echo '优秀'

fi

b、case

格式:case $变量名称in

"第一个变量内容")

;;

"第二个变量内容")

;;

*)//最后一个变量内容都会用*来代表其它值,不包含前面的变量内容

;;

esac

如:case $1 in

start)

echo 'start MYSQL service.'

;;

stop)

echo 'stop MYSQL service.'

;;

*)

echo "Usage: $0 start|stop"

;;

esac

2、循环控制

跳出本次循环:continue

结束循环:break

a、while循环

格式:while [ 条件表达式]

do

程序段落

done

如:num=3

while [ $num -gt 0 ]

do

echo $num

num=$(($num-1))

done

b、for循环

格式:for var in con1 con2 con3

do

程序段

done

如:

for i in user0 user1 user2 user3

echo $i

done

格式:for ((i=0;i<10 1++))

do

程序段

done

如:for ((i=0;i<10;i++))

do

echo $i

useradd user$i

echo 123 | password --stdin_user$i

done

3、函数使用

定义一个函数:在程序的最前面

function 函数名(){}或者function 函数名{}

如:function printit(){

echo "your choice is $1"

}

调用:直接使用函数名

如:printit 1

传递参数:函数名参数1 参数1

相关文档
最新文档