shell编程基础

 

Shell基础

#!/bin/bash必须在脚本的头一行,#!必须是脚本的头两个字符,意义是用户指定用于执行脚本的Sheel解释器。

变量:

语法:变量名=<值>

注意:赋值操作符“=”两边必须不能由空格。

如果被赋值的变量包含任何的定界符,那么应该使用单引号或者双引号。

 

输入变量的值:

语法:$read 变量名

当脚本执行到read语句时,将等待用户输入一个值给变量。

 

变量的作用域:

局部变量:只能在创建这个变量的Shell中有效的变量。

全局变量:可以由父Shell传递值到子Shell的变量。

Linux是通过export命令把一个局部变量变成全局变量。

数值运算:

         使用expr命令可以用于求值算术表达式。默认的,expr会把结果输出到标准输出。

         注意:操作符“*”需要在前面增加转义符“\”

         运算符号两边必须有空格。

命令转换:

         是一个命令中使用多个命令的方法。

         命令替换首先执行被替换的命令,然后执行整个名命令。

         第一种方法:使用重音符“`”的形式

         第二种方法:使用$()的形式

         如:

                   echo “The date is ‘date’”

         echo “The date is $(date)”      

Shell流程控制

         test和[]测试命令

         测试命令对表达式进行测试,求出真(true)或者假(false)的逻辑值。

         测试语句要求比较运算符两边都要有空格。

         多个条件用-a(与)或者-o(或)连接。

脚本流程分支结构

         if结构

         格式:

                   if<condition>

        then

                            <command(s)>

                   fi

         其中condition是能够返回真或者假的测试表达式,如果测试表达式结果为真执行command语句或者语句序列,如果为假则不执行command语句或者语句序列。fi用于指出此分支结构的结束。

 

         case … esac

         格式:

                   case  <$name>  in

                   value1)

                            <command1(s)>

                            ;;

                   value2)

                            <command2(s)>

                            ;;

                   ……

                   valueN)

                            <commandN(s)>

                            ;;

                  *)

                            <command(s)>

                            ;;

                   esac

         结构求变量name的值并和value1…valueN进行比较,当和其中的一个值相匹配时,就执行该变量下的命令序列。

         ;;的作用是使得一个匹配值所要执行的命令序列和下一个值的命令序列隔开。

 

脚本流程循环结构

         while结构

         格式:

                   while<condition>

                   do

                            <command(s)>

                   done

        

         until结构

         格式:

                   until<condition>

                   do

                            <command(s)>

                   done

 

         for结构

         格式:

                   1)for(([expr1];[expr2];[expr3]))

         其中expr1是被用于初始化的表达式;然后检查expr2的值,如果为真,则执行循环体中的语句序列command,如果为假则结束循环。

                   2)for  name  in <list_of_values>

                      do

                                     <command(s)>

                      done

         其中list_of_values中的各个值将依次赋值给变量name,并且对于每一次赋值,执行循环体中的语句序列command。

         break和continue命令

         break命令用于循环体中,可以导致立即结束循环。

         continue命令用于循环体中,能导致立即开始新的循环。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值