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

在每个脚本的开头都使用"#!",这意味着告诉你的系统这个文件的执行需要指定一个解释器.#!实际上是一个2字节的魔法数字,这是指定一个文件类型的特殊标记,换句话说,在这种情况下,指的就是一个可执行的脚本(键入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一些独特的特征.脚本将与POSIXsh标准相一致.

退出命令exit 0
#
退出之前返回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脚本编程指南,想学脚本的就先别去大海里捞针了,从这本书入门,再去大海里捞金吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值