首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux shell脚本编撰

2012-07-19 
linuxshell脚本编写Shell编程的介绍首先要了解shell是命令解析器,将指令转换为相应的机器码能够运行的程序

linux shell脚本编写
Shell编程的介绍

首先要了解shell是命令解析器,将指令转换为相应的机器码能够运行的程序。

再者shell脚本是一系列命令序列的文本文件。

Linux中Shell脚本相当在windows系统中一个脚本文件,当你要关掉计算机的时候,只要关掉此脚本即可,ko!因为此脚本的文件里含有关闭计算机的命令。

在shell脚本里编程的时候,要注意一个问题,则#!/bin/bash?or/sh??etc。!与?/??必须要空一格。该路径是在bin下的应用文件bash??or??sh,在命令的窗口就不用按着路径了,本人就是吃这样的亏,弄了好久全是报解析错误。呵呵,可是我的耐心和努力终于ko了!当然在这里你要先设定执行权限,代码为:chmod??+x??filename.sh。执行代码为./filename.sh。这样可以得到结果了。

下面我完成一个完整的程序,代码如下:

#!?/bin/sh

#建立我的第一个shell程序,呵呵

echo?"hello??word"

上述的是shell脚本编程,echo表示要输出这行代码。下面的是在usr/local/shell下的端口操作,代码如下:

先是要进入root下;

root@luozhong/usr/local/shell#?chmod??+x?filename.sh

root@luozhong/usr/local/shell#./filename.sh

结果为:

hello,word

在shell脚本里设置变量与java,c,c++有点不同,他的变量,没有类型。Shell脚本的代码如下:

#!?/bin/sh

#set?a?variable?number

a="I?love?linux"

#print??number

echo??"A??is?:"

echo???$number

上述shell脚本的代码要注意三个方面1,$必须放在执行变量的前面没有空格;2,等号的左右不能有空格;3,每一行结束语没有分号。

有这一个变量在一个字符串里,要改变他的值,怎样办,shell脚本的代码如下:

num=2

echo?"this?is?the?numnd"

呵呵,我开始也觉得有意思,嗯,越学约有意思,呵呵。怎么让他输出像这样的代码了(this?is?the?2nd)。查了很久我终于知道了,只要改变一个地方即可(echo?"this?is?the?${num}nd"),运行这行脚本语言得到的结果就是我想要的呵呵,又ko一个问题。呵呵!

在shell脚本当中“#”表示注释这一行。

?

shell脚本语言与其他的语言也有些不同,比如运用条件语句的时候,他的if要与结束符运用fi代码如下:

if[?$1 -eq?$2?];

??? then?

? ?echo "hehe"

fi

??? else if[ $1 -gt $2]

???? then

?????? echo " "

??????? elif[ $1 -lt $2]

????????? then

???????????? echo "?? "

???????? fi

???? fi

fi必不可少

?

????

read??keypress

case?"keypress"??in

??? [?]?)??echo?"";;

[?]?)??echo?"";;

*?)???echo??"other";;

esac

esac必不可少

for??var??in??[?list?]?

do

echo??"???"

done

?

while[?list?]

do

echo?"??"

done

<!--EndFragment-->

?

<!--EndFragment-->

?

?

其中【】中每个字符都要留空格

与其他语言不同的判断条件

?

整数

?

字符串

相同

-eq

?

??=

不同

-ne

?

?!=

大于

-qt

?

??<

小于

-lt

?

??>

不小于

-ge

?

?

不大于

-le

?

?

为空

-z

?

?

不为空

-n

?

?

??-e??文件已知存在

??-f???普通文件

??-s???文件大小不为零

??-d????目录

??-r????对当前用户可以读取

??-w???对当前用户可以写入???

??-x???对当前用户可以执行

?

?

?

?

?

?

?

?

?

?

使用bash和sh应该是一样的,不知道为什么,在shell脚本里调用程序时候,使用sh出现了错误,可是使用bash没有报错,还输出了结果。Shell脚本语言代码如下:

#!/bin/sh

num="hell0"

echo?$num

function?func?{

?????local?num="hi"

?????echo?$num

}?

func

echo?$num

可惜的是报错了,但是用#!/bath/bash.

输出结果为:

hello

hi

hello

请牛人指点指点,呵呵,谢谢。

这是我花了几个小时所获得知识,从中我学到了许多,呵呵。慢慢的进步吧,嗯,linux系统我会学会你的,呵呵,ko“linux”是我最近的任务,呵呵。

<!--EndFragment-->

热点排行