Linux学习笔记(十一)

练习:编写脚本
通过脚本给定的一个参数,将指定的目录进行压缩。
在/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学习笔记(十一))