• SHELL基础


    #  表示注释

    set  列出所有的变量

    ''   内容原封不动指定给了变量

    ""  取消了空格的作用,特殊符号的含义保留

    unset  删除变量

    特殊变量:

    $0  这个程序所有的参数

    $n  这个程序的第n个参数值

    $*  这个程序的所有参数

    $#  这个程序的参数个数

    $$  这个程序的PID

    $!  执行上一个后台程序的PID

    $?  执行上一个指令的返回值

    Read命令  从键盘读入数据,赋值给变量

    expr命令  Shell变量的算术运算符,语法:expr 表达式。

          如:expr 3 + 5  注意:运算符之间要有空格。

          如:value='expr $c * $b'  乘法需要

    test    变量测试语句,语法:test 测试条件。测试范围:整数,字符串,条件

          测试字符串:test $str1 == $str2

                test $str1 !== $str2 

                test $str1  如果$str1不为空,则返回结果为真

                test -n $str1  如果字符串长度不为零,则返回结果为真

                test -z $str1  如果字符串长队为零,则返回结果为真

          文件测试:test -d file  是否为目录

               test -f file  是否为文件

               test -x file  是否可执行

               test -r file  是否可读

               test -w file  是否可写

               test -e file  是否存在

               test -s file  是否大小为空,是否为空文件

               说明:test -x file 简写为  [ -x file ]

          整数测试:test int1 -eq init2

               test int1 -ge init2  >=

               test int1 -gt init2  >

               test int1 -le init2  <=

               test int1 -lt init2  <=

               test int1 -ne init2  不等于 

               说明:也可以省略test写成  [ init1 -lt init2 ]

    流程控制语句:

    if 语句

      语法:if 条件

         then

          语句

         fi

      说明:利用 ; 可放在一行

      多个条件联合:

          -a 或 &&  逻辑与,都成立时,结果为真

          -o 或 ||   逻辑或,两个条件有一个成立,结果为真

      

    #!/bin/bash
    #例1
    echo "if test" if [ -x /bin/ls ] ; then   /bin/ls fi echo "=================" echo "if test" if [ -x /bin/ls ] then   /bin/ls fi

    以上信息来自如下教程:

    https://edu.aliyun.com/lesson_155_1964?spm=5176.10731542.0.0.XOQNlG#_1964

    将wndows中的脚本导入到linux系统后无法执行:打开时候正常,运行时候不正常

        rpm -ivh /mnt/Packagets/dos2unix-3.1-37.el6.x86_64.rpm

        dos2unix 脚本.sh

    shift  参数左移指令,每执行一次,参数序列顺序左移一次,$#的值减1,用于分别处理每个参数,移出去一个参数

        问题:计算参数之和

    #!/bin/bash
    if [ $# -le 0 ]
    then
        echo "erro!:not enough parameters"
        exit 124
    fi
    sum=0
    while [ $# -gt 0 ]
    do
        sum='expr $sum + $1'
        shift
    done
    echo $sum

    以上信息来自如下教程:

    https://edu.aliyun.com/lesson_155_1970?spm=5176.10731542.0.0.eIImdE#_1970

    shell函数:  把一个功能封装起来,使用时候直接调用函数名。这样的脚本好处:模块化,可读性强。

    语法:

    函数名()

    {

    命令序列

    }

    注:函数调用时,不带()

    函数中的变量都是全局变量,没有局部变量

    调用函数时,可以传递参数。在函数中用$1、$2来引用传递的参数

    以上信息来自如下教程:

    https://edu.aliyun.com/lesson_155_1971?spm=5176.10731542.0.0.yaeztV#_1971

  • 相关阅读:
    小清新数论题泛做
    近日模考理数压轴题简记
    带边数的无向连通图计数
    ZJOI2019 简记
    SDOI2019 R2D2 题解
    [补档题解]后缀树节点数
    [BJ United Round 3] 押韵
    高维 DFT 算法(FWT 快速沃尔什变换)
    SDOI2019 R2D1 题解
    LOJ#6713. 「EC Final 2019」狄利克雷 k 次根 加强版
  • 原文地址:https://www.cnblogs.com/cevinchen/p/9539288.html
Copyright © 2020-2023  润新知