美文网首页
shell脚本

shell脚本

作者: 放下梧菲 | 来源:发表于2020-04-25 16:12 被阅读0次

    shell脚本是自动化管理的重要依据,管理系统里的重要工具,我们要熟练掌握它。

    建立一个文件里面写的就是脚本
    只要三行代码就够了严格意义上来说就一行
    最后就是执行

    非常简单的操作就可以完成第一个shell 脚本了,不过有几个需要注意,当我们在自己写脚本的时候尽量能够注释好程序内容的说明,包括版本信息,作者等各种信息。其次要注意的是exit 0 是返回0给系统,这个和大多数的语言里的return 0 是差不多的意思。
    -e 是可有可无的,加上去可以听见声音。
    最后我们要运行脚本 用的是sh shell.sh这个命令。或者我们也可以用bash shell.sh命令。

    1、简单脚本的例子

    • 接受用户的输入,然后输出


    结果
    • 数值运算
      输入两个数字进行加法运算
      这里需要
      知道的是,(({a}+${b})),需要用两个圆括号,当然也可以用之前学过的declare,这里不再演示。
      结果

    这里指的一提的就是我们用bash 或者 sh 命令去执行的文件里面的变量是在子进程里的,我们在外面的是没有这个变量的,只有当你去用source 运行文件,变量才会能在父进程中被我们访问到。

    2、条件判断式

    • 1、if ... then
      if [ 条件判断式 ] ; then
      fi
      这里条件判断式子是用的方括号,而方括号有个注意点就是,两边都要留好空格。方括号里面每个变量最好都用双引号括起来,而常量最好也用双引号或者单引号括起来。

    而当判断复杂起来 可以用else,这个在编程语言里也经常出现。
    if [ 条件判断式 ] ; then
    elif [ 条件判断式 ] ;then //不满足之前的条件判断,但是满足这个条件判断,执行这个命令。
    else //不满足上面两个条件判断,执行的命令。
    fi
    因此,上一个程序可以改成这样。



    结果如下。


    -2、case...esac
    case $变量名 in
    "值 1")
    ;;
    如果变量的值等于值1,则执行程序1,值
    2")
    如果变量的值等于值2,则执行程序2
    …省略其他分支…
    *)
    如果变量的值都不是以上的值,则执行此程序
    ;;
    esac
    下面是例子


    这里的{1}是默认参数,{0}是该脚本的名字,${1}是该脚本之后的第一个参数。这是一个不接受用户输入,命令行直接运行的程序,命令行接收参数。
    下面是运行该脚本的事例。

    -3 function

    function fname(){
    程序段
    }


    3、循环

    -1 while do while 、until do done (不定循环)
    while [ condition ]
    do
    程序段落
    done

    until[ condition ]
    do
    程序段落
    done
    while do while 是满足条件就执行循环,而until则是相反,不满足条件才执行循环。

    举个例子

    效果如下


    • 2、for do done
      for var in con1 con2 con3
      do
      程序段
      done

    以上面这个循环为例子,var变量在循环中会变,第一次是con1,第二次是con2,第三次是con3

    下面为例,passwd这个文件里存放所有用户的账户,我们将所有账户给切割出来,然后我们遍历users, 用id命令账户得到结果。


    结果如下


    -3 for do done
    for (( 初始值; 限制值; 赋值运算 ))
    do
    程序段
    done
    这种循环比较简单,和其他编程语言的for循环没什么太大区别。
    下面为例子


    效果如下


    相关文章

      网友评论

          本文标题:shell脚本

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