Linux的那些事儿(13)----Shell编程

来源:互联网 发布:斗门 网络推广 编辑:程序博客网 时间:2024/06/07 05:54

写文章之前我想大家必须知道什么是shell编程以及shell编程和C/C++编程的区别是什么?

本人的认识是shell编程就是运用linux的操作命令按照一定的语法进行编程

与C/C++的区别在于,shell编程具有一定的平台相关性,也就是说某些命令在这个Linux操作系统可以用,但是在另外一个linux下就不一定可以用了,而C/C++编程却可以达到平台无关性。

如果你不介意运行时间,大可以采用shell编程,因为简单。如果考虑到平台无关性,则要考虑通用的shell命令或者C/C++编程。

1、Shell脚本介绍

1.1 使用shell脚本的原因

shell脚本在处理自动循环或大的任务方面可节省大量的时间,且功能强大。如果你有处理一个任务的命令清单,不得不一个一个敲进去,然后观察输出结果,再决定它是否正确,如果正确,再继续下一个任务,否则再回到清单一步步观察。一个任务可能是将文件分类、向文件插入文本、迁移文件、从文件中删除行、清除系统过期文件、以及系统一般的管理维护工作等等。创建一个脚本,在使用一系列系统命令的同时,可以使用变量、条件、算术和循环快速创建脚本以完成相应工作。这比在命令行下一个个敲入要节省大量的工作时间。shell脚本可以在行命令中接收信息,并使用它作为另一个命令的输入。对于不同的UNIX和LINUX,使用一段shell脚本将需要一些小小的改动才能运行通过。实际上shell的可迁移性不成问题,但是系统间命令的可迁移性存在差别。

1.2 脚本内容

脚本不是复杂的程序,它是按行解释的。程序必须以下面的行开始(必须放在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。

任何脚本都可能有注释,加注释需要此行的第一个字符为#,解释器对此行不予解释。在第二行注释中写入脚本名是一个好习惯。脚本从上到下执行,运行脚本前需要增加其执行权限。确保正确建立脚本路径,这样只用文件名就可以运行它了。

1.3 运行一段脚本

$ vim cleanup

#!/bin/sh

#name:cleanup

# this is a general cleanup script

echo "starting cleanup...wait"

rm /usr/local/apps/log/*.log

tail -40 /var/adm/messages>/tmp/messages

rm /var.adm/messages

mv /tmp/messages  /var/adm/messages

echo "finished cleanup"

上述脚本通过将目录下文件名截断,清除/usr/adm/下信息,并删除/usr/local/apps/log下所有注册信息。

可以使用c h m o d命令增加脚本执行权限。

$chmod u+x cleanup

现在运行脚本,只要敲入文件名即可:$ cleanup

sh:cleanup:command not found

在试:$ ./cleanup

 

 

 

原创粉丝点击