Shell脚本遍历目录
2016-06-21 00:13
316 查看
这里,主要通过该脚本来练习Shell函数的写法,其功能主要是用来递归地遍历Unix目录,列出其中的文件和目录,并且能够通过缩进来展示文件的目录层级关系。
通过该脚本主要掌握下面几点:
Shell脚本中定义函数的方法。
注意,在访问函数参数时的方法。
Shell脚本中双引号的作用。
命令行中的字符可以分为两类:文本字符(literal)和元字符(meta)。 literal也就是普通纯文字,对 shell 来说没特殊功能;meta对shell来说,具有特定功能的特殊保留字符。
最常见的保留字符有两个:
有时候,我们希望shell将meta字符作为普通的literal字符处理,也求是去掉原有的shell保留字符的语义,仅仅作为一个文本字符处理。这时候就需要对这些字符进行
常用的 quoting 有如下三种方法:hard quote,’ ’ (单引号),凡在hard quote中的所有meta均被关闭;soft quote,” ” (双引号),在 soft quoe 中大部份meta都会被关闭,但某
些则保留(如$);escape,\ (反斜线),只有紧接在escape(跳脱字符)之后的单一meta才被关闭。
运行效果:
tree.sh: function listFiles() { #1st param, the dir name #2nd param, the aligning space for file in `ls $1`; do if [ -d "$1/$file" ]; then echo "$2$file" listFiles "$1/$file" " $2" else echo "$2$file" fi done } listFiles $1 ""
通过该脚本主要掌握下面几点:
Shell脚本中定义函数的方法。
注意,在访问函数参数时的方法。
$n的含义是取第n个参数。
Shell脚本中双引号的作用。
命令行中的字符可以分为两类:文本字符(literal)和元字符(meta)。 literal也就是普通纯文字,对 shell 来说没特殊功能;meta对shell来说,具有特定功能的特殊保留字符。
最常见的保留字符有两个:
IFS由
<space>或
<tab>或
<enter>三者之一组成(我们常用
space),
IFS是用来拆解 command line的每一个词(word)用的,因为shell command line是 按词来处理的;
CR则是用来结束command line用的,这也是为何我们敲
<enter>命令就会跑的原因。
有时候,我们希望shell将meta字符作为普通的literal字符处理,也求是去掉原有的shell保留字符的语义,仅仅作为一个文本字符处理。这时候就需要对这些字符进行
quoting处理。
常用的 quoting 有如下三种方法:hard quote,’ ’ (单引号),凡在hard quote中的所有meta均被关闭;soft quote,” ” (双引号),在 soft quoe 中大部份meta都会被关闭,但某
些则保留(如$);escape,\ (反斜线),只有紧接在escape(跳脱字符)之后的单一meta才被关闭。
运行效果:
$ sh tree.sh . test a.txt b.txt good game of thrones hah.txt tree.sh
相关文章推荐
- android wifi 无线调试
- Unix 即将迎来 50 岁
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux VS Unix:Linux欲一统天下 Unix不死
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 关于C#中排序函数的总结
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- shell字符串操作详解
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解