shell脚本

shell脚本最好放在目录/usr/local/sbin下,便于管理。shell脚本的文件名通常都以“.sh”结尾。shell脚本的第一行一般以“#!/bin/bash”开头,表示该文件使用bash语法。“#”表示注释,后面跟脚本的注释内容、作者、创建日期或版本。以上这些均为非必须的,但是遵循它们更符合规范。

在linux中反引号的作用是将引号中的字符串当成shell命令执行,返回命令的执行结果。

脚本定义变量的格式为:“变量名=变量的值”。在脚本中引用变量时需要加上符号“$”。

脚本有预设变量,为$0和$n,n>0。执行脚本时,执行命令后面跟的第一个参数会赋值给$1,第二个参数会赋值给$2,以此类推。$0代表脚本本身的名字。

数学计算要用“[ ]”括起来,并且前面要加符号“$”。如:a=$[$b+$c]。

执行脚本的方法:

sh命令后跟脚本名可执行该脚本,如:sh script.sh。若加上“-x”选项可查看该脚本执行过程,如:sh -x script.sh。

切换到脚本所在的目录下,确保有该脚本的执行权限,输入“./脚本名 ”回车即可,如./script.sh。


if逻辑判断格式如下:

格式一:

if 判断条件;then

command

fi

格式二:

if 判断条件;then

command1

else

command2

fi

格式三:

if 判断条件1;then

command1

elif 判断条件2;then

command2

else

command3

fi

在脚本的if判断语句中,若同一个if语句有多个判断条件,则它们可按照逻辑用“&&”或“||”相连,分别表示“并且”和“或者”。

若判断条件用两对小括号括起“((判断条件))”,则变量前的“$”可要可不要,“(( ))”与判断条件间可以紧挨着。判断条件中用判断符号:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)。例子:a=88; if ((a>=80)) && ((a<90)); then echo good; fi。 

若判断条件用一对中括号括起“[判断条件]”,则变量前必须加“$”,“[ ]”与判断条件间必须有空格。判断条件中用如下判断字符串:

判断大小字符串:

-lt:小于,less than。

-le:小于等于,less equal。

-gt:大于,great than。

-ge:大于等于,great equal。

-eq:等于,equal。

-ne:不等于,not equal。

例子:a=10; if [ $a -lt 1] || [ $a -gt 5 ]; then echo ok; fi。

判断文件字符串:

-e:判断文件或目录是否存在。
-d:判断是不是目录以及是否存在。
-f:判断是不是普通文件以及是否存在。
-r:判断是否有读权限。
-w:判断是否有写权限。
-x:判断是否有执行权限,即是否可执行。
格式: if [ -e file ]; then command; fi。
例子:if [ -d /home/ ]; then echo ok; fi。

case逻辑判断格式如下:
case 变量 in
value1)
command1
;;
value2)
command2
;;
value3)
command3
;;
*)
command4
;;
esac
case结构不限制value的个数,“*”代表“其他值”。case脚本常用于编写系统服务的启动脚本。例如/etc/init.d/iptables中就用到了。

for循环格式如下:
for 变量名 in 循环的条件;do
command
done
循环条件可以是空格隔开的一组数字或者字符串,也可以是一条命令的执行结果。
例子:
for a in `seq 1 5`; do
 echo $a
done

for a in 1 2 3 b c; do
 echo $a
done

for file in `ls`; do
 echo $file
done

while循环格式如下:
while 循环条件;do
command
done
可以用一个冒号代替循环条件,表示死循环。
例子:
a=5
while [ $a -ge 1 ]; do
 echo $a
 a=$[$a-1]
done

while :; do
 command
 sleep 3
done

自定义函数格式如下:
function 函数名( )
{
command1
command2
}
在shell脚本中,函数要写在最前面,以便调用。
例子:
function sum( )
{
sum=$[$1+$2]
echo $sum
}
sum $1 $2

脚本常用命令:

date:

用法:date [选项]... [+格式]

常用选项:

-d,--date=“字符串”:显示指定字符串所描述的时间,而非当前时间。
-s, --set=“字符串”:设置指定字符串来分开时间。

常用格式:

+%Y:以四位数字格式打印年份。

+%y:以两位数字格式打印年份。

+%m:打印月份。

+%d:打印日期。

+%H:打印小时。

+%M:打印分钟。

+%S:打印秒。

+%w:打印星期。若结果为0则表示周日。

例子:

date +"%Y-%m-%d %H:%M:%S":打印日期格式为2015-01-01 00:00:00。

date -d "-1 day" +%d:打印前一天的日期(只有日)。
date -d "-1 hour" +%H:打印前一小时的小时。

date -d "-1 min" +%M:打印前一分钟的分钟。


read:

read命令用于和用户交互,它把用户输入的字符串作为变量值。

例子:

read -p "Please input a number:" x:执行之后,系统会将用户根据提示输入的数字赋值给变量x。双引号和x之间要有空格。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值