首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

高级练习

9. 编写一组命令或者一个脚本来证明变量扩展在路径名扩展之前执行。

10. 编写一个shell脚本输出正在执行的shell的名称。

11. 解释下面的shell脚本的行为:

$ cat quote_demo

two1iner="This is line 1.

This is line 2."

echo "$twoliner"

echo $twoliner

a. 在这个脚本中每个echo命令将会获取多少个参数?

b. 重新定义IFS,使第2个echo的输出与第1个echo的输出相同。

12. 将前一条命令的退出状态添加到提示符中,使其表现得如下所示:

$ [0] ls xxx

ls: xxx: No such file or directory

$ [1]

13. dirname工具将它的参数作为一个路径名,并将该路径前缀(不包含最后部分的整个串)写到标准输出:

$ dirname a/b/c/d

a/b/c

如果只给dirname一个简单的文件名(不含字符/)作为参数,dirname将写一个.字符到标准输出:

$ dirname simple

.

用一个bash函数实现dirname。要确保当参数为/之类时,该函数也能很好地处理。

14. 用bash函数实现basename工具,它将路径名参数的最后部分写入到标准输出。举例来说,给定路径名a/b/c/d,basename将d写入到标准输出:

$ basename a/b/c/d

d

15.  Linux的bashname工具有一个可选的第2参数。如果输入命令basename path suffix,basename将从path中删除suffix和前缀:

$ basename src/shellfiles/prog.bash .bash

prog

$ basename src/shellfiles/prog.bash .c

prog.bash

将这项功能添加到第14道题目中编写的函数中。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论