shell编程基础-总结

来源:互联网 发布:蜂窝移动数据不能关闭 编辑:程序博客网 时间:2024/06/15 03:09

 

 

Shell程序的基本结构


#!/bin/bash

#hello

echo 'hello Linux'

echo 'this is a shell file'

 


 

这个程序很简单,但包含了shell程序的下面一些基本特征:

(1)所有的shell程序第一行都是以#!开头。后面为执行此shell程序的shell解释器且与名称。

(2)程序的第二行以注释的方式写出程序的名字,这是shell编程的一种习惯。

(3)最简单的shell程序就是一组shell命令。这里只是使用了两个echo命令显示了两个字符串。

 

 

shell的编辑、保存与执行

 

   我们可以使用gedit,vim等任意一个文本编辑器来编写shell脚本。

   shell程序是一个普通的文本,需要添加可执行权限以后才能执行。编辑保存后,需要执行一个命令,使得shell脚本变为可执行文件。命令为:chmod -x filename

   这时,shell脚本文件才变为一个可执行文件。只要在该脚本所在文件目录,输入./filename即可执行该脚本。

 


shell程序中的变量

   shell程序中需要用变量来存储程序的数据。shell中的变量分为 局部变量、环境变量、位置变量三种。

1、局部变量

   shell语言是解释型语言,不需要像C或java语言一样编程时需要事先声明变量。在shell中,对一个变量进行赋值时,就定义了变量。局部变量指的是只在当前的进程和程序中有效的变量。

   shell程序的变量是无数据类型的,可以使用同一个变量存放不同数据类型的值。变量赋值之后只需在变量前面加一个$访问变量的值。可以用赋值符号(=)为变量赋值。如果对一个变量赋值是没有空格的字符串,那么可以不用引号。

2、环境变量

   环境变量是在一个用户的所有进程中都可以访问的变量。系统中常常使用环境变量来存储常用的信息。

   环境变量的查看:使用export命令可以查看系统的环境变量的列表。

   环境变量的访问:环境变量的访问,需要在一个环境变量的前面加一个$符号。

   环境变量的定义:可以用export命令来定义一个环境变量。环境变量的命令一般都是大写的。

   环境变量的删除:删除自己定义的环境变量,可以用unset命令。

3、位置变量

   位置变量是指的shell程序在运行时传入的参数。程序中可以用变量的形式来调用这些参数。这些参数被存放到1~9的9个变量名中,被形象的称为位置变量。同普通变量一样,位置变量用$前缀加这个数字来表示。

   在位置变量中,$0的值为bash。$1以后的变量是输入参数的列表。

 

 

shell程序中变量的赋值

   shell中使用'='进行变量的赋值,也可以用等号来改变或初值化一个变量的值。要给一个变量赋值时,就这么写:变量名=数值。要去用变量的值时,只需在变量名前加一个$符号。

   !!!注意:给变量赋值时,不能在“=”两边留空格。

 

算数运算符

   shell中常用的算术运算符为:+、-、*、/、**、%、+=、-=、*=、/=、%=。其中**为对两个变量做幂运算。

   注:当输入以下命令时:echo 1+2。    shell中并没有输出计算结果3,而是输出了1+2。要进行数值计算,在shell中有三种表达方式:

(1)、用expr改变运算顺序。expr用于整数值计算。可以用echo `expr 1 + 2`来输出1+2的结果,用expr表示后面的表达式为一个数学运算。(注意:`不是单引号,而是“TAB“键上面的那个符号。

(2)、用let指示数学运算。可以先将运算的结果赋值给变量b,命令是 let b=1+2,然后再用 echo $b来输出b的值。

(3)、用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容先进行数学运算。

 

输入和输出

   echo命令可以输出文本或变量的值,是shell中最常用的输出方式。结果可以输出到终端也可以写入到文件。

   echo $str         #将结果输出到终端

   echo $str>file    #将结果保存到文件file中。如果没有,则新建一个文件

                     #如果有了则会覆盖原来的文件

   echo $str>>file   #将结果追加到文件file中

 

   echo的格式控制字符:/c,/t,/n

   注意:如果是要输出特殊字符,必须加-e选项,否则输出的结果中会直接输出字符。加-n选项可以禁止echo输出后的换行。

 

read命令读取信息

    read命令可以从键盘或文件中读入信息,并赋给一个变量。read命令读取信息的各种方法:

(1)、如果只读入一个变量,会把键盘上输入的所有信息赋给这个变量。按“Enter“键结束输入。

(2)、如果输入多个变量,用空格键将输入的变量隔开。如果输入变量的个数多于需要读取变量的个数,将会把剩余的变量赋值给最后一个变量。

(3)、在读取语句后面添加<filename,表示从文件中读取数据,并且赋值给变量。

 

测试语句

    注:$?用于保存上一个命令的结果

    test命令的测试结果,返回0时表示测试成功,返回1时表示测试失败。

    用中括号可以代替test命令。这种方法和test命令的原理相同。需要注意的是:中括号里面的前后都要有一个空格。如: [ a -eq b ] 才是标准的写法。

    测试有文件状态测试,数值测试,字符串测试,逻辑测试。每一个测试对应的测试参数都不一样。

 

流程控制结构

if语句

   每一个if都要有一个fi与之相匹配。

   if ....; then
    ....
   elif ....; then
       ....
   else
      ....
   fi




这些都只是shell编程最简单的应用与实现,要想进步,还得再往深处研究,主要是多加练习编写shell脚本程序。熟能生巧。




 

原创粉丝点击