linux 脚本 学习

一直都在听他们说,写个脚本做什么什么事情。对于脚本,本来就没有什么概念,一切从零开始吧!

首先要了解linux下脚本的概念,这里有说:

shell 是一个命令解释器.是介于操作系统kernel 与用户之间的一个绝缘层.准确地说,它也是一种强力的计算机语言.一个shell 程序,被称为一个脚本,是一种很容易使用的工具,它可以通过将系统调用,公共程序,工具,和编译过的二进制程序粘合在一起来建立应用。

什么是shell?就是那个绝缘层啦用户和kernel打交道的那个界面,通道,路径~

什么是脚本?就是绝缘层下的一个程序啦既然是程序就有其语法和编写的规范等等啦~

它有什么作用?就是将系统调用,公共程序,工具,和编译过的二进制程序粘合在一起来建立应用听起来似乎很有用,粘合功能很强大 o  )

到此~

概念清晰啦~ 

linuxSDK的测试中,我主要进行功能测试,测试的手段也是写c代码手动执行测试,好像没有脚本什么事,直到我想在开机的时候自己加载两个驱动程序,本着好学不倦的精神,本来可以手动加载的,但是刚好可以学习一下写脚本,以后还有用的着的地方呢,就开始学习啦~

网上搜资料……

向同事请教……


 

1.脚本的语法

头一次写脚本,根本没见过脚本是什么样的,跑去问YF,怎么写脚本呢?YF就打开一个她写的脚本,给我看,必须要这样开头,布拉布拉~讲了一通,我回来了,又在网上搜了篇文章《linux脚本编写基础》http://linux.chinaunix.net/techdoc/beginner/2008/06/02/1008844.shtml,写了第一个脚本~只有一句话~echo

在每个脚本的开头都使用"#!",这意味着告诉你的系统这个文件的执行需要指定一个解释器.#!实际上是一个字节的魔法数字,这是指定一个文件类型的特殊标记换句话说在这种情况下,指的就是一个可执行的脚本(键入man magic 来获得关于这个迷人话题的更多详细信息).#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中的命令(#!行下边的一行开始),忽略注释.
:
1 #!/bin/sh
2 #!/bin/bash
3 #!/usr/bin/perl
4 #!/usr/bin/tcl
5 #!/bin/sed -f
6 #!/usr/awk -f
上边每一个脚本头的行都指定了一个不同的命令解释器,如果是/bin/sh,那么就是默认shell(Linux 系统中默认是Bash).使用#!/bin/sh,在大多数商业发行的UNIX ,默认是Bourne shell,这将让你的脚本可以正常的运行在非Linux 机器上,虽然这将会牺牲Bash 一些独特的特征.脚本将与POSIX sh 标准相一致.

退出命令 exit 0
退出之前返回0,返回表示成功.

嘿嘿,有了开头和结尾,怎么把那些有用的语句加上去,我想来想去,试了一下,原来是直接把命令敲到脚本里就行啦-_-||,当然这是最简单的用法啦,再复杂的我也没有接触到~

 

2.脚本如何执行

编写完脚本之后,就可以使用sh scriptname或者bash scriptname 来调用它.(不推荐使用sh <scriptname,因为这禁用了脚本从stdin 中读数据的功能.)更方便的方法是让脚本本身就具有可执行权限,通过chmod 命令可以修改.
比如:
chmod 555 scriptname (
允许任何人都具有 可读和执行权限)

:
chmod +rx scriptname (
允许任何人都具有 可读和执行权限)
chmod u+rx scriptname (
只给脚本的所有者 可读和执行权限)

3.脚本如何开机运行

这里主要讲两种方法:

a.打开/etc/rc.d/rc.local,把开机要执行的命令加进去,就可以达到开机运行某个命令的目的啦~这个方法我虽然没有试过,但看rc5.d的最后一个链接S99local,应该没有问题;

b.把写好的脚本放到/etc/rc.d/init.d路径下,在rc5.d中建立一个链接,同样可以达到开机运行的目的,比较第一种方法,这种方法就是更独立,也可以自由选择开机运行的次序。

 

大概就是以上几点了,当然期间还遇到了一些问题,幸有高人相助,我在开机时加载驱动的目标终于达到啦~

 

这就是我的linux脚本学习之路,回头想想,学习时两点最重要:

1.有高人示范指点,有些东西,看别人做一遍,胜过自己摸索很久,这里要谢谢YFYJ~

2.起初在网上搜集资料,有点大海捞针,不得要点,还是老老实实看本书,学的更快,谢谢YJ共享的书,真的觉得很好,高级Bash脚本编程指南,想学脚本的就先别去大海里捞针了,从这本书入门,再去大海里捞金吧

posted @ 2012-04-11 16:07  astroboyx  阅读(209)  评论(0编辑  收藏  举报