当前位置 博文首页 > Tina_ZHOU3的博客:学习笔记:Shell脚本-2015-08-05

    Tina_ZHOU3的博客:学习笔记:Shell脚本-2015-08-05

    作者:[db:作者] 时间:2021-09-12 18:09

    参考文档 :http://www.92csz.com/study/linux/14.htm

    以下为精简版======================================================================================================================================

    Shell脚本----首先它是一个脚本,并不能作为正式的编程语言说白了,shell脚本就是一些命令的集合

    Shell脚本通常都是以.sh?为后缀名的。test.sh中第一行一定是?“#! /bin/bash”?它代表的意思是,该文件使用的是bash语法如果不设置该行,那么你的shell脚本就不能被执行。’#’表示注释,在前面讲过的

    Shell脚本的执行很简单,直接”sh filename “?即可,另外你还可以这样执行:" . / filename.sh ", 但是默认我们用vim编辑的文档是不带有执行权限的,所以需要加一个执行权限“chmod +x filename.sh”,那样就可以直接使用’./filename.sh’?执行这个脚本了

    给变量赋值时用到反引号。’d’’d1’在脚本中作为变量出现,定义变量的格式为?“变量名=变量的值”(d=` dfafdfdf `)。当在脚本中引用变量时需要加上’$’符号(echo " the script begin at $d "),这跟前面讲的在shell中自定义变量是一致的


    Shell脚本还可以和用户交互



    read -p?选项类似echo的作用

    你有没有用过这样的命令”/etc/init.d/iptables restart “?前面的/etc/init.d/iptables?文件其实就是一个shell脚本,为什么后面可以跟一个”restart”??这里就涉及到了shell脚本的预设变量实际上,shell脚本在执行的时候后边是可以跟变量的,而且还可以跟多个

    如果你学过C或者其他语言,相信你不会对if?陌生,在shell脚本中我们同样可以使用if逻辑判断shellif判断的基本语法为:

    1)不带else

    if??判断语句; then

    command

    fi




    if1.sh中出现了?((a<60))这样的形式,这是shell脚本中特有的格式,用一个小括号或者不用都会报错,请记住这个格式,即可

    2)带有else

    if??判断语句?; then

    command

    else?

    command

    fi

    以上只是简单的介绍了if语句的结构在判断数值大小除了可以用”(( ))”的形式外,还可以使用”[ ]”。但是就不能使用>, < , =?这样的符号了,要使用?-lt?(小于),-gt?(大于),-le?(小于等于),-ge?(大于等于),-eq?(等于),-ne?(不等于)


    shell?脚本中if还经常判断关于档案属性,比如判断是普通文件还是目录,判断文件是否有读写执行权限等常用的也就几个选项:

    -e?:判断文件或目录是否存在

    -d?:判断是不是目录,并是否存在

    -f?:判断是否是普通文件,并存在

    -r?:判断文档是否有读权限

    -w?:判断是否有写权限

    -x?:判断是否可执行

    使用if判断时,具体格式为:?if [ -e filename ] ; then


    shell? 脚本中,除了用 if 来判断逻辑外,还有一种常用的方式,那就是 case

    【shell脚本中的循环

    Shell脚本中也算是一门简易的编程语言了,当然循环是不能缺少的常用到的循环有for循环和while循环下面就分别介绍一下两种循环的结构

    通过这个脚本就可以看到for循环的基本结构?

    for?变量名?in?循环的条件;?do

    command

    done



    【shell脚本中的函数

    fun.sh?中的sum()?为自定义的函数,在shell脚本中要用

    function?函数名() {?

    command?

    }


    shell脚本中,函数一定要写在最前面,不能出现在中间或者最后,因为函数是要被调用的,如果还没有出现就被调用,肯定是会出错的

    上个脚本执行过程如下:




    cs
    下一篇:没有了