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-->

相关推荐