您的位置:首页 > 运维架构 > Linux

Linux学习笔记(十一)

2012-10-22 10:58 274 查看
练习:编写脚本

通过脚本给定的一个参数,将指定的目录进行压缩。

在/tmp目录下产生文件,文件名如

目录名_当前时间.tar.bz2

1.定义变量,用于存储:路径+文件名

2.执行命令tar,将变量作为文件名,参数1作为tar命令第二个参数。

脚本名为backupdir.sh

运行脚本

./backupdir.sh   /bin

结果产生

/tmp/bin_13:40.tar.bz2

#=====backupdir.sh=========

#!/bin/bash

LOCATION=/tmp

DIR=$1

TIME=`date "+%H:%M"`

FILENAME=${LOCATION}/${DIR}_${TIME}.tar.bz2

#FILENAME="/tmp/${1}_`date "+%H:%M"`.tar.bz2"

tar jcf $FILENAME  $DIR

echo $FILENAME

=======================

练习:

编写脚本,用于设定居于网络上网设置。

设定ip地址

设定网关

设定dns

脚本名称:setnetwork.sh

脚本接受三个参数

第一个参数设置ip地址。ifconfig

第二个参数设置网关。route

第三个参数用于设定dns地址,/etc/resolv.conf(nameserver)

执行方法:

./setnetwork.sh 192.168.100.20  192.168.100.1  202.96.69.38

#--------setnetwork.sh------

#!/bin/bash

ifconfig eth0 $1

route add default gw $2

echo "nameserver $3" > /etc/resolv.conf

#-----------------------------

在/opt目录下创建一个目录myroot

在此目录中创建目录,目录名称来自根目录下所有文件名。

mkdir /opt/myroot

cd /opt/myroot

mkdir `ls /`

------------------------

&&  当之前的命令正确执行,才执行后面的命令

|| 当之前的命令执行失败,才执行后面的命令

例如

make  && make install

测试命令test

test可以测试文件属性、类型

可以测试表达式逻辑与或非

test -f backupdir.sh -a -f setnetwork.s  && echo "aaa"

test还可以对数值进行比较

流程控制

if分支语句

语法格式

if 测试语句

then
语句段

fi

---------

if 测试语句

then
语句段1

else
语句段2

fi

-----------

if 测试语句1

then
语句段1

elif  测试语句2

then
语句段2

else
语句段3

fi

================

改造之前backupdir.sh脚本

判断参数个数,必须大于1。否则直接退出。

判断指定目录是否存在,如果不存在,则进行提示后退出。

最后生成文件后,判断生成的文件是否可以读取。如果可以,则显示“文件创建成功”否则显示“文件创建失败”

  1 #!/bin/bash

  2 

  3 if [ $# -eq 0 ]

  4 then

  5     echo "需要一个参数"

  6     exit

  7 fi

  8 

  9 if [ ! -e $1 ]

 10 then

 11     echo "指定目录不存在"

 12     exit

 13 fi

 14 

 15 FILENAME=/tmp/${1}_`date "+%H:%M"`.tar.bz2

 16 tar jcf $FILENAME $1

 17 

 18 echo $FILENAME

 19 

 20 if [ -e $FILENAME ]

 21 then

 22     echo "文件创建成功"

 23 else

 24 

 25     echo "文件创建失败"

 26 fi

=======================

编写计算器脚本

脚本名称:ca.sh

执行方式

ca  100  +  50 

ca   99   x  6

ca   45  /   3

ca   7  -   2

通过参数给脚本提供操作数和操作符

通过判断操作符来进行相应计算,最后输出计算结果

ca  100  +  50

result=150

#!/bin/bash

if [ $# -lt 3 ]

then
echo "need 3 argment"
exit 1

fi

if [ "$2" = "x" ]

then
echo "ca  $1 $2 $3"
echo "result=$(($1*$3))"

elif [ "$2" = "/" ] || [ "$2" = "+" ] || [ "$2" = "-" ]

then
echo "ca $1 $2 $3"
echo "result=$(($1$2$3))"

else
echo "operator wrong!"
exit 2

fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 脚本 测试 date 存储