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
通过脚本给定的一个参数,将指定的目录进行压缩。
在/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学习笔记(十一)
- Linux学习笔记(十一)-系统安全篇…
- Linux学习笔记(十一)
- Linux学习笔记(十一)用户组管理 、用户管理
- linux学习笔记(十一)
- linux学习笔记(十一) 解决linux下中文乱码
- Linux学习笔记(十一)VI、VIM和文本处理
- linux学习笔记十一(LVM基础)
- Linux学习笔记(十一、帮助命令)
- Linux学习笔记(十一)--命令学习(文件权限属性)
- 说话之道十一
- OpenCV学习笔记(十一) 轮廓操作
- Linux学习笔记(一) 推荐
- 人脸识别之人脸检测(十一)--JDA算法
- 黑客编程教程(十一)获得系统详细信息
- 十一、oracle 数据库管理员
- Exchange2003-2010迁移系列之十一
- 微信小程序把玩(十一)icon组件
- 攻克CCNA/CCNP/CCIE之交换部分案例(十一)- DHCP中继
- Java面试题大全(Java基础十一)