设为首页 加入收藏

TOP

Shell 脚本常用命令(二)
2017-10-16 18:18:53 】 浏览:7500
Tags:Shell 脚本 常用 命令
这种表示形式返回VALUE;否则,返回一个空串

${# VARIABLE}

这种表示形式返回VARIABLE值的长度,除非VARIABLE是* 或者@在为*或者@的特殊情况下,则返回$@所表示的元素的个数。要记住,$ @保存传给该脚本的参数清单

${VARIABLE:?MESSAGE}

如果VARIABLE没有值,则这种表示形式返回MESSAGE的值。Shell也显示出VARIABLE的名字,所以这种形式对捕获得错误很有用

  注意: 使用${VALIABLE:?MESSAGE},如果发现此变量此时没有值,则脚本停止运行并显示行号和变量名称。 主要用于调试。

  5、位置变量

  5.1  使用$1,$2,$3…$9,${10},${11}…来代表输入的参数。其中$0代表被执行的命令或者脚本的名字。$1,$2…代表输入的第1,2…个参数

  5.2  例子:

        # cat count.sh#!/bin/sh

        A=$1             # 将位置$1的数值读入,并赋给变量A

        B=$2             # 将位置$2的数值读入,并赋给变量B

        C=$[$A+$B]       # 将变量A与B的值相加,将结果赋给C

        echo $C          # 显示C的数值

      结果:

        # ./count.sh  3  6

        9

        # ./count.sh 34  28

        62

  5.3  $@和$*代表参数的列表,$#代表参数的数量 (不知道$@和$*之间的差别)

  6、运算符和优先级

                   Shell运算符和它们的优先级顺序

级别

运算符

说明

13

-, +

单目负、单目正

12

!, ~

逻辑非、按位取反或补码

11

* , / , %

乘、除、取模

10

+, -

加、减

9

<< , >>

按位左移、按位右移

8

< =, > =,  < , >

小于或等于、大于或等于、小于、大于

7

= = , ! =

等于、不等于

6

&

按位与

5

^

按位异或

4

 |

按位或

3

&&

逻辑与

2

| |

逻辑或

1

=, + =, - =, * =, /=, % =, & =, ^ =, | =, << =, >> =

赋值、运算且赋值

  7、source / export / let / unset

  7.1  source

  7.1.1     正常情况下,脚本中执行的参数设置只能影响到shell脚本本身的执行环境,不能影响到调用此shell的脚本。

  7.1.2     使用source命令执行脚本,可以让脚本影响到父shell的环境(即调用此shell的当前shell)。

  7.1.3     例如:source env.sh

  7.2          export

  7.2.1     在bash下,使用export建立环境变量后,会影响到子shell脚本和当前shell的环境变量

  7.3          unset

  7.3.1     删除环境变量

  7.3.2     i.e.

      #export newval=1

      #echo $newval

      1

      #unset newval

      #echo $newval

        (ß此处为空行,newval已经被删除)

  7.4          let

  7.4.1     在bash中只用此命令可以建立一个临时的变量,此变量不会影响到子shell

  8、逻辑判断

  8.1  if

  8.1.1     单格式与嵌套  

if 条件表达式 ;then #当条件为真时执行以下语句  
    命令列表  
else #为假时执行以下语句  
    命令列表  
fi

     if 语句也可以嵌套使用  

if 条件表达式1;then  
    if 条件表达式2;then  
        命令列表  
    else  
        if 条件表达式3;then  
            命令列表  
        else  
            命令列表  
        fi  
    fi  
else  
    命令列表  
fi

   8.1.2     多分支格式

if test -f "$1" ;then  
    lpr $1  
elif test -d "$1" ;then  
    (cd $1;lpr $1)  
else  
    echo "$1不是文件或目录"  
fi

   8.2  case

   8.2.1     格式

     case $newval in

     1)          #这里是可能值1

         echo 1

         ;;      #表示第一个分支结束

     2)           #这里是可能值 2

         echo 2

         ;;      #第二个分支结束

         *)      #表示其他可能值,必须在最后,否则他后面的语句无法执行

         echo unkown

         esac    #case 语句结束

  8.3 while /until

     格式:

while 表达式
do
    命令列表
done

    例如: 

Sum=0  
i=0  
while true #true是系统的关键词 表示真  
do  
    i=`expr $i + 1`  
    Sum=`expr $Sum + $i`  
    if [ $i = "100" ]  
    then  
        break;  
    fi  
done  
echo $i $Sum
最后这个程序显示的是 100 5050 

      下面将这个程序再改动一下 

Sum=0  
i=0  
while [ $i != "100" ]  
do  
    i=`expr $i + 1`  
    Sum=`expr $Sum + $i`  
done  
echo
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇centos7下git安装及使用(Capistr.. 下一篇在ubuntu16.04中一键创建LAMP环境

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目