day 18
发布时间:2020-12-14 05:15:52 所属栏目:大数据 来源:网络整理
导读:# 例题32 [[email?protected] xiti] # vim 32.sh # 写一个脚本,实现如下功能: # 脚本可以带参数也可以不带 # 参数可以有多个,每个参数必须是一个目录 # 脚本检查参数个数,若等于0,则列出当前目录本身,否则显示每个参数包含的子目录 # !/bin/bash if [
#例题32 [[email?protected] xiti]# vim 32.sh #写一个脚本,实现如下功能: #脚本可以带参数也可以不带 #参数可以有多个,每个参数必须是一个目录 #脚本检查参数个数,若等于0,则列出当前目录本身,否则显示每个参数包含的子目录 #!/bin/bash if [ $# -eq 0 ] then echo "当前目录下的文件是:" ls . else for d in [email?protected] do if [ -d $d ] then echo "目录$d下有这些子目录:" find $d -type d else echo "并没有该目录:$d" fi done fi #例题33 [[email?protected] xiti]# vim 33.sh #定义一个shell函数,能接受两个参数,满足以下要求: #第一个参数为URL,即可下载的文件,第二个参数为目录,即下载后保存的位置 如果用户给的目录不存在,则提示用户是否创建,如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本 #如果给的目录存在,则下载文件,下载命令执行结束后测试文件下载成功与否,如果成功,则返回0给调用脚本,否则,返回52给调用脚本 #!/bin/bash if [ $# -ne 2 ] then echo "你必须要输入两个参数,第一个参数是网址,第二个参数是目录." exit 1 fi if [ ! -d $2 ] then while : do echo "你输入的第二个参数,并不是一个存在的目录。是否要创建该目录呢?(y|n): "c case $c in y|Y) mkdir -p $2 ;; n|N) exit 51 ;; *) echo "请输入y或者n." continue ;; esac done else cd $2 wget $1 if [ $? -eq 0 ] then exit 0 else echo "下载失败." exit 52 fi #例题31 #提示用户输入网卡的名字,然后我们用脚本输出网卡的ip,需要考虑下面问题: #输入的字符不符合网卡名字规范,怎么应对。 #名字符合规范,但是根本就没有这个网卡又怎么应对。 [[email?protected] xiti]# cat 31.sh #!/bin/bash ip add |awk -F ‘: ‘ ‘$1 ~ "^[1-9]" {print $2}‘ > /tmp/eth.list while : do eths=`cat /tmp/eth.list |xargs` read -p "Please input a if name(The eths is `echo -e " |