shell编程(2)

  1. shell 变量基本用法及常用符号使用
    -(1)将 主提示符改为 用户的主目录名

    -(2)将字符串 DOS file c:>$student*赋值给变量 x,并显示出来

      -(3)在 shell 命令终端输入 likes=(cosmos galaxy moon); likes[6]=mars,然后使用 echo 分别显示以下表达式的值,并结合结果,写出表达式的作用。① ${likes[*]}② ${likes[@]}③ ${#likes[*]}④ ${#likes[@]}⑤ ${#likes}⑥ ${#likes[0]}
    


①② 得到非空数组元素 ③④得到数组中非空元素的个数 ⑤⑥得到数组中下标为0的元素的长度

     -(4)在shell命令终端输入name=Phoenix,然后使用echo显示表达式①,观察结果;然后输入命令unset name,再输入表达式①观察结果。结合两次结果,写出表达式的作用。① ${name:-hello}


如果name变量不为空,取变量name的值,否则取值为hello

     -(5)在shell命令终端输入name='/usr/share/doc/apg/php.tar.gz',然后使用echo分别显示表达式①和②的值,观察结果。修改 name 的值,让name='/etc/apt/sources.list.d',再次使用 echo 分别显示表达式①和②的值,观察结果。结合结果,写出表达式的作用。① ${name%%.*} ② ${name%.*}


①name值的末尾如果和‘.’匹配,去掉最多匹配的部分,剩下的即为表达式的值
②name的值如果和‘.’匹配,去掉最少匹配的部分,剩下的即为表达式的值

     -(6)在 shell 命令终端输入 name=/usr/bin/X11,然后使用 echo 分别显示表达式①和②的值,观察结果。修改 name 的值,让 name='/etc/apt/sources.list.d',再次使用 echo 分别显示表达式①和②的值,观察结果。结合结果,写出表达式的作用。① ${name#*/}  ② ${name##*/}


①如果name值的开头与‘/’匹配,则去掉匹配最少的部分,剩下的即为表达式的值
②如果name值的开头与‘/’匹配,则去掉匹配最多的部分,剩下的即为表达式的值

     -(7)已知某同学提交的博客文章页面地址 address 如下:address='http://www.cnblogs.com/xyz/p/8569001.html'通过字符串匹配,如何得到其博客主页地址:homepage='http://www.cnblogs.com/xyz'写出由变量 address 得到变量 homepage 的 shell 命令实现。

  1. shell 脚本分析
    -(1)使用 vim/gedit 编写 shell 脚本文件 ex1.sh

    在 shell 命令终端分 3 次运行该脚本,观察其运行结果。① 第 1 次运行:. ex1.sh② 第 2 次运行:. ex1.sh best wishes③ 第 3 次运行:. ex1.sh god bless u

    ① 整个 shell 脚本的功能是什么?
    将句子倒叙输出
    ② 第 8 行、第 9 行、第 11 行的功能是什么?
    第 8 行:将cmd通过循环变为“echo + 输入句子的倒叙”第 9 行:将count的值每次减一再赋值给count。第 10 行:两次解释,第一次:将cmd的值翻译出来:echo $3$2$1,第二次:执行翻译出来的句子。
    ③ 每次运行时,脚本中的 while 循环分别执行几次?
    2、3次
    ④ 运行. ex1.sh god bless u 时,while 循环体第 1 次被执行时,第 8 行执行后变量 cmd 的值为?
    cmd $3
    -(2)使用 vim/gedit 编写 shell 脚本文件 ex2.sh

    在命令终端输入. ex2.sh jsj,(实际执行时,请将jsj替换为您电脑中的登录用户名)结合结果及帮助信息

    ① line6 中,who | grep “^$1”的功能?
    判断用户是否存在
    ② line8~10 功能?
    将第一个参数重定向到LimitString中,向其发送Hello hadoop
    -(3)使用 vim/gedit 编写 shell 脚本文件 ex3.sh

    在命令终端输入. ex3.sh,结合结果及帮助信息,回答下列问题

    该脚本的功能是?
    该脚本功能是将当前文件夹下的所有.sh格式的文件复制,新文件名为为原文件名加上后缀".BACKUP--日期--时间"。
    -(4)使用 vim/gedit 编写 shell 脚本文件 ex4.sh

    在 shell 命令终端分 3 次运行该脚本,观察其运行结果。① 第 1 次运行:. ex4.sh② 第 2 次运行:. ex4.sh /etc/apt/sources.list③ 第 3 次运行:. ex4.sh /etc/apt/sources.list ex4.sh



    ① line4-10 中函数 NL 的功能?
    line4-10 中函数 NL的作用是将用户输入的值保存在变量x中,然后输出行号和x的值
    ② line14 中,条件测试满足时,脚本执行的功能是?
    条件测试满足时,脚本执行函数NL的功能
    ③ line17-line21,这部分脚本的功能是?
    将参数传递给NL调用,再shift删除这个参数,其余参数左移一位

  2. shell 脚本编写
    -(1)第 4 章 思考题 4.9

    -(2)第 4 章 思考题 4.11

    -(3)第 4 章 思考题 4.12

    -(4)第 4 章 思考题 4.18

    -(5)猜数字游戏具体要求如下:① 写一个函数 random0_100 生成 0~100 之间的随机数② 用户从键盘输入竞猜数字,如果猜错了,提示用户所猜数字偏大或偏小,用户继续猜,直至猜对为止。


    4.总结与体会
    大致了解并掌握了shell程序编写和执行方法,shell特殊字符的用法,shell字符串的处理,shell变量、数组、环境变量、位置变量的基本用法,shell中条件测试和关键字 if, case, while, for, until 的用法,shell函数的使用方法,shell脚本的调试方法,shell命令编程解决实际问题。

posted @ 2018-06-06 20:52  shenmingwang  阅读(119)  评论(0编辑  收藏  举报