[转]简单的bash脚本入门:30分钟搞定BASH脚本编程
(2011-03-14 16:29:49)
标签:
脚本例子语句编程语言函数杂谈 |
分类: Linux |
30分钟搞定BASH脚本编程
chu888@263.net
一个最简单的脚本
这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程.
在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。
一个最经典的HelloWorld程序
#!/bin/bash
echo Hello World
这个脚本只有二行,它的第一行这个脚本程序由那个程序来解释.第二行只有一个简单的
动作,它的功能是在终端上打印出一行”HelloWorld” 。如果你测试着执行这个命令时
(./hello.sh),你将会得到一个commandnot found的信息,这种情况大部分可能是你的
第一行#!/bin/bash这个程序有问题,你一定要确保bash可以找到并且可用。(一般情况下
你还要对这个脚本附一个可执行权限)
#chmodu+x hello.sh
一个非常简单的备份脚本
#!/bin/bash
tar -cZf /var/my-backup.tgz /home/me/
在这个脚本中,它替换了上一个例子的将一行信息打印在终端上的功能,取尔代之的是一
个备份/home目录的tar备份命令。
关于重定向的一些信息
最基本的理论基础
这里有对于三个文件的重定向定义:stdin(标准输入), stdout(标准输出) and
stderr(标准错误输出)(std=standard).
基本上你可以
1.重定向 stdout 到一个文件
2.重定向 stderr 到一个文件
3.重定向 stdout 到stderr
4.重定向 stderr 到 stdout
5.重定向 stderr 到 stdout 中并且成为一个文件
6.重定向 stderr and stdout to stdout
7.重定向 stderr and stdout to stderr
在Linux中1代表 '标准输出', 2代表’标准错误’
标准输出
这个例子将会使ls的显示结果重定向到一个文件中.
ls -l > ls-l.txt
标准错误
这个例子将会使grep命令在运行过程中出现的错误输出到一个文件中
grep da * 2> grep-errors.txt
管道
这一节我们将解释一个非常简单的并且你以后一定会用到的功能,它就是管道。
为什么大家都会用到管道?
管道可以使你非常方便的将一个程序的结果转向到另外一个程序中。
一个sed的例子
这个例子使用了非常简单的管道功能:
ls -l | sed -e "s/[aeio]/u/g"
当我们执行以下命令后:首先ls–l会先执行并且它会输出结果信息但是如果它的后面跟
是一个管道符的话,那么它就会将结果重新定向到sed这个程序中,sed使用了替换功能,
所以这个例子执行完会,会将ls–l结果中所有含有aeio的英文单词替换成单词u.
chu888@263.net
一个最简单的脚本
这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程.
在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。
一个最经典的Hello
这个脚本只有二行,它的第一行这个脚本程序由那个程序来解释.第二行只有一个简单的
动作,它的功能是在终端上打印出一行”Hello
(./hello.sh),你将会得到一个command
第一行#!/bin/bash这个程序有问题,你一定要确保bash可以找到并且可用。(一般情况下
你还要对这个脚本附一个可执行权限)
#chmod
一个非常简单的备份脚本
在这个脚本中,它替换了上一个例子的将一行信息打印在终端上的功能,取尔代之的是一
个备份/home目录的tar备份命令。
关于重定向的一些信息
最基本的理论基础
这里有对于三个文件的重定向定义:
stderr(标准错误输出)
基本上你可以
1.
2.
3.
4.
5.
6.
7.
在Linux中
标准输出
这个例子将会使ls的显示结果重定向到一个文件中.
标准错误
这个例子将会使grep命令在运行过程中出现的错误输出到一个文件中
管道
这一节我们将解释一个非常简单的并且你以后一定会用到的功能,它就是管道。
为什么大家都会用到管道?
管道可以使你非常方便的将一个程序的结果转向到另外一个程序中。
一个sed的例子
这个例子使用了非常简单的管道功能:
当我们执行以下命令后:首先ls
是一个管道符的话,那么它就会将结果重新定向到sed这个程序中,sed使用了替换功能,
所以这个例子执行完会,会将ls