C语言学习(四)shell脚本

       Linux系统中的Shell种类众多,常见的有bash、csh以及ksh等。不同的Shell语法有所不同,不能互换使用,但每种Shell都有其特色之处。这里我们选择bash来讲述Shell脚本编程的基础知识。Shell命令可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本。

1.编写一个Shell脚本

编写一个简单的Shell脚本,输出字符串Hello Word。
hello.sh注意:echo命令的功能是在屏幕上显示一段文字,后面的字符串可以加引号,也可以不加引号。如果加引号,将字符串原样输出;如果不加引号,将字符串中的各个单词用一个空格来分割。
脚本文件编辑完成之后,将其保存为test.sh。在执行脚本之前,需要将其属性改为可执行的,如下所示:
chmod +x test.sh
执行脚本的方法为:./test.sh
 

Shell脚本就是将一系列的Linux命令放在一个文件中执行的实用程序。Shell脚本可以利用vim等文本编辑器来编写。Shell脚本的格式是固定的,如下所示:
#!/bin/bash                                             #指定解释执行该脚本文件的Shell程序
# 注释
命令…
注:一行未完成,可以在行尾加上“\”字符,表示与下一行合并为一行。

2.特殊字符

引号分为双引号、单引号和反引号。
1、由双引括起来的字符,除$、`(反引号)和\保留其特殊功能外,其余全为普通字符号
例如:
(1)$用于变量的引用;
变量的定义引用和清除:

STR=“Hello world”         #对变量STR进行赋值
                      echo $STR或echo ${STR}  #用$对其进行引用
                      unset STR                        #清除STR变量 


(2)echo“现在的地址是`pwd`”,输出结果为:现在的地址是/root(`pwd`被解释为命令);
(3)\为转义字符,使用-e进行解析,如:echo -e "a\nd"       //  \n自动换行
另外,在某个字符前面利用反斜杠(\)能够阻止shell把后面的字符解释为特殊字符。
2、单引号内部不能使用$、`(反引号)和\,都作为普通字符对待。 

3.常用脚本命令

echo ${#STR}                                    #计算长度(字母个数) 
echo ${STR:1:3}                                 #显示第2,3,4个字符
echo “`expr index “$STR” 23`”       #在变量STR中23 谁先出现 显示谁位置
数组:
array1=(0 1 2 3 4)                                     #3种定义赋值数组(圆括号)
echo ${array1[0]}                                     #显示数组值
echo ${#array1[@]}或echo ${#array1[*]} #计算数组长度
 
算数运算:
c=`expr $a + $b`                           #.sh中的加减乘除
c=`expr $a \* $b`                          #.sh中的乘法

 4.数值测试

 

数值测试可用的操作符包括:
-eq:两个数相等;(=)
-ne:两个数不相等;(!=)
-gt:第一个数大于第二个数;(>)
-lt:第一个数小于第二个数;(<)
-le:第一个数小于等于第二个数;(<=)
-ge:第一个数大于等于第二个数。(>=)

5.字符串测试

字符串测试的主要操作符包括:
==:两个字符串相等;
!=:两个字符串不等;
-z:字符串为空;
-n:字符串不为空。 

6.结构控制语句

 if语句用来实现条件分支结构,它的一般格式为:
     if 条件1
     then  
            命令1
     elif条件2
     then  
            命令2
     else  
            命令3
     fi
 
注意:if语句以它的反写fi结尾。如果条件1成立,则执行then后面的命令1;如果条件1不成立,但条件2成立,则执行命令2;如果两个条件都不成立,则执行命令3。

 

 for循环的一般格式为:
     for变量名in [列表]
          do
              命令1  命令2  …
     done
 
     在for循环中,使用变量名来遍历列表中所有取值,当变量值在列表中时,即执行一次所有命令。for循环的程序流程

 while循环的一般格式为:
     while 条件
          do  
              命令1  命令2  ...
     done
 
     当条件成立时,do和done之间的命令才会被执行,执行完成后重新测试条件,如果不成立则终止循环。while循环的程序流程

展开阅读全文

没有更多推荐了,返回首页