没有合适的资源?快使用搜索试试~ 我知道了~
首页Shell脚本编程入门指南
Shell脚本编程入门指南
需积分: 0 0 下载量 101 浏览量
更新于2024-06-30
收藏 2.27MB PDF 举报
"这篇文档是一个关于shell脚本编程的学习教程,主要面向初学者。教程由多个章节组成,逐步介绍shell的基础知识和进阶技巧,包括入门、基本命令、I/O重定向、正则表达式以及sed的使用。" 在《shell脚本编程 - v1.11》这篇教程中,作者首先强调了shell作为用户与操作系统内核交互的接口的重要性,它允许用户通过命令行执行各种任务。教程适合那些已经熟悉Linux基础操作,如登录系统、执行程序、使用命令管道、输入/输出重定向和后台执行等的初学者。 在学习shell脚本编程之前,作者建议读者具备一些基础知识,比如了解如何将脚本设置为可执行权限,这通常是通过`chmod`命令来实现的。教程内容分为多个章节,逐日递进,旨在帮助读者逐步掌握shell脚本的核心技能。 第一章介绍了shell学习的第一天,内容涵盖了入门知识。第二章则进入了第二天的学习,可能涉及更深入的shell概念或操作。第三章至第十章分别探讨了不同的主题,如使用`echo`和`printf`进行输出,基本的I/O重定向,正则表达式(包括基础正则表达式BRE和扩展正则表达式ERE),以及分组和sed命令用于文本的查找与替换。 在正则表达式的章节中,作者讲解了如何使用正则表达式进行文本匹配,包括锚点、交替和分组等高级特性。这些工具对于处理和操作文本数据至关重要。最后,通过学习如何使用`sed`命令,读者可以学会如何在文件或流中查找特定模式并进行替换,这是shell脚本中非常实用的功能。 整个教程结构清晰,从基础到实践,适合逐步学习和掌握shell脚本编程的初学者。通过这个教程,读者不仅能够理解shell的基本原理,还能获得编写高效、实用脚本的能力。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86318227/bg10.jpg)
简单的 echo 输出简单的 echo 输出
echo 的作用就是产生输出,可以提示用户,或者用来产生数据提供用户,或者产生数据进一步处理。
早起的 echo 只能将参数打印到 shell 交互界面上,参数之间以一个空格隔开,并以换行符号结尾。
但是,这么强大的语言,怎么可能不进一步的发展?
后来又衍生出了-n 选项,省略结尾的换行符号。
etho的语法:
etho [string......]
用途是产生 shell 脚本的输出,没有什么主要选项。行为模式是将参数打印到标准输出,参数之间用空格隔
开,并以换行符结尾。转义序列用来表示特殊字符,以及控制其行为模式。
常用的转移序列:
\a:
\b:
\c:
\f:
\n: 换行
\r: 回车
\t: 水平制表符
\v: 垂直制表符
\\: 反斜杠字符
\0ddd:
在实际编写 shell 脚本的时候,\a 序列通常用来引起用户的注意,\0ddd 序列最有用的地方就是通过送出终端转
移序列进行(非常)原始的光标操作,但是不建议这么做。很少使用\0ddd 序列。
第 3 章 shell学习第三天 | 15
![](https://csdnimg.cn/release/download_crawler_static/86318227/bg11.jpg)
44
shell 学习第四天---华丽的 printf 输出shell 学习第四天---华丽的 printf 输出
![](https://csdnimg.cn/release/download_crawler_static/86318227/bg12.jpg)
printf 命令模仿 C 程序库里的 printf()库程序。几乎复制了该函数的所有功能,如同 echo 命令,printf 命令可以
输出简单的字符串:
printf “hello world\n”
通过观察 echo 和 printf 的输出的不同,可以发现 echo 会提供自动换行,printf 不会提供自动换行,所以那些转
移序列在 printf 发挥的很好。
printf 命令的完整语法分为两部分:
printf format-string [arguments....]
分析:printf 是命令,不解释。format-string 为格式控制字符串,arguments 为参数列表。
printf 命令不用加括号。
format-string 可以没有引号,但是最好加上,单双引号均可
参数多于格式控制符(%)时,format-string 可以重用,可以将所有参数都转换
arguments:使用空格分割,不用逗号。
printf “%d , %s\n” 1 abc 这里输出的是1 , abc。有没有引号都可以。
如果没有 arguments %s 用 NULL 表示,%d 用 0 表示
例如: printf “%s , %d\n” 输出结果为 ,0
format-string 的可重用性: printf “%s” abc def==>abcdef
如果以%d 来显示字符,会有警告,提示无效的数字,此时的默认值为 0。例如: printf "%d\n" abc==>bash: pri
ntf: abc: invalid number 0;
既然 shell 的 printf 和 C 的 printf 差不多,那么他们也都支持%。 例如: printf “%s\n” hello 输出 hello 换
行。因为各种版本的 liunx 的各种版本对 echo 的移植性不好,所以引入了 printf,printf 可以说是 echo 的加强
版,是由 POSIX 标准定义。
第 4 章 shell 学习第四天---华丽的 printf 输出 | 17
![](https://csdnimg.cn/release/download_crawler_static/86318227/bg13.jpg)
55
shell 学习第五天---基本的I/O重定向shell 学习第五天---基本的I/O重定向
![](https://csdnimg.cn/release/download_crawler_static/86318227/bg14.jpg)
在了解重定向之前,需要先了解一下标准的输入输出,总的来说,所有的数据都有来源,也都应该都重点,默认
的标准输入输出就是终端。
例如:
我们只是输入 cat 命令,并不指定任何参数,接着我们输入 hello world,就是打印 helloworld 到终端。
所谓的 I/O 重定向就是通过与终端交互,或是在 shell 脚本里设置,重新安排从哪里输入或者输出到哪里。
重定向与管道
使用<改变标准输入
program<file 可将 program 的标准输入修改为 file
tr
使用>改变标准输出
program>file 可将 program 的标准输出修改为 file
">"重定向符号在墓地文件不存在的时候会新建一个,如果目的文件存在,目的文件的内容会被覆盖,原本的数据
会丢失。
以>>附加到文件
program>>file 可以将 program 的标准输出追加到 file 的结尾处。
如同 >,open or create 文件,但是>>会追加到文件的结尾而不是覆盖原文件内容。
以 | 符号建立管道
program1 | program2 可将 program 的标准输出修改为 program2 的标准输入。这样做的好处是执行速度较
快,不会产生临时文件。一般情况下,越复杂越强大的管道往往是高效的。
例如: tr -d ‘\r’ dos-file.txt | sort >Linux-file.txt
这条管道会先删除输入文件内的回车符号,在完成数据的排序之后,将结果输出到目的文件。
r 是 translate 的简写,通过这个单词,你大概也能猜到它是干什么的了吧!没错,它可以用一个字符串来替换另
一个字符串,或者可以完全除去一些字符。您也可以用它来除去重复字符。
tr 用来从标准输入中通过替换或删除操作进行字符转换。tr 主要用于删除文件中控制字符或进行字符转换。
tr [options] cource-char-file replace-char-list
例如:
(1)去除 oops.txt 里面的重复的小写字符
tr -s "[a-z]"<oops.txt >result.txt
(2)删除空行
tr -s "[\012]" < plan.txt 或tr -s ["\n"] < plan.txt
(3)有时需要删除文件中的^M,并代之以换行
tr -s "[\015]" "[\n]" < file 或tr -s "[\r]" "[\n]" < file
(4)大写到小写
cat a.txt |tr "[a-z]" "[A-Z]" >b.txt
第 5 章 shell 学习第五天---基本的I/O重定向 | 19
剩余256页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)