美文网首页
shell(三)

shell(三)

作者: yyshang | 来源:发表于2017-02-13 17:56 被阅读11次

    Shell 传递参数

    我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
    以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

    #!/bin/bash
    # author:菜鸟
    # url:www.runoob.com(可以直接拿来测试了)
    
    echo "Shell 传递参数实例!";
    echo "执行的文件名:$0";
    echo "第一个参数为:$1";
    echo "第二个参数为:$2";
    echo "第三个参数为:$3";
    

    结果

    $ chmod +x test.sh 
    $ ./test.sh 1 2 3
    Shell 传递参数实例!
    执行的文件名:./test.sh
    第一个参数为:1
    第二个参数为:2
    第三个参数为:3
    

    $# 传递到脚本的参数个数
    $* 以一个单字符串显示所有向脚本传递的参数。
    如"$"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $$ 脚本运行的当前进程ID号
    $! 后台运行的最后一个进程的ID号
    $@ 与$
    相同,但是使用时加引号,并在引号中返回每个参数。
    如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $-
    显示Shell使用的当前选项,与set命令功能相同。
    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

    Shell 数组

    Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 c 类似)。
    与大部分编程语言类似,数组元素的下标由0开始。
    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    array_name=(value1 ... valuen)
    

    读取数组
    读取数组元素值的一般格式是:

    ${array_name[index]}
    

    Shell 基本运算符

    Shell 和其他编程语言一样,支持多种运算符,包括:

    • 算数运算符
    • 关系运算符
    • 布尔运算符
    • 字符串运算符
    • 文件测试运算符
      原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
      expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
      例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
    val=`expr 2 + 2`
    echo "两数之和为 : $val"
    

    执行脚本,输出结果如下所示:

    两数之和为 : 4
    

    两点注意:

    • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
    • 完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
    Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png

    相关文章

      网友评论

          本文标题:shell(三)

          本文链接:https://www.haomeiwen.com/subject/xbktwttx.html