美文网首页程序员Linux学习
[Linux](十七) --shell bash学习----基本

[Linux](十七) --shell bash学习----基本

作者: 你就像只铁甲小宝 | 来源:发表于2019-01-24 18:18 被阅读6次

    写在开头


    今天就开始写小脚本啦,但在这之前得了解一些基本的语法,学习每个语言基本都有的for,while ,if swtich啊,无非就是换了种格式。为了能更熟悉,照着鸟哥的私房菜里的练习都打了一遍。

    下面是学习的一些语法


    1.变量


    之前已经学过变量的设置,范围了,可以看看

    但在写shell里有几个特殊变量,需要注意的:

    • $0,$1,$2.... 代表脚本后面接的参数,$0是脚本名称,$1是脚本后面第一个参数,$2是脚本第二个参数,以此类推。

    • $#:指脚本后面你输出参数的个数。

    • $@:就是把你输入的参数都输出出来。

    可以看看这个例子:
    代码:


    图片.png

    结果:


    图片.png

    2.判断符号[],和判断语句if...else..fi


    使用判断符号需要遵循一些规则:

    • 变量最好要加上双引号。
    • 每个组件之间都要有空格。(一开始老是犯错)

    • 常量最好要加上单引号。

    那怎么使用呢,下面我列举了一些比较容易记的。

    • 关于文件类型的判断的

    -e(exist) ,-f(file),-d(directory),-L(Linkfile).
    分别是,文件名是否存在,文件是否存在,目录是否存在,连接文件是否存在。

    • 关于文件权限的判断

    -r(read读),-w(write写),-x(excute执行)。
    分别是,是否具有读权限,是否具有写的权限,是否具有执行的权限。

    • 两个文件的比较

    -nt (newer than),-ot(older than),ef(equal file)
    分别是,第一个文件是否别第二个文件新,第一个文件是否比第二个文件旧,两个文件是否为同一个文件。

    • 关于两个整数之间的大小比较

    -eq (equal),-ne(not equal),gt(greater than),lt(less than),-ge(greater than or equal),-le(less than or equal)
    分别是,等于,不等,大于,小于,大于等于,小于等于。

    • 关于字符串的判断

    -z (zero):字符串是否为空,空的话,返回True
    -n:与-z相反
    str1 = str2: str1是否等于str2,等于返回True
    str1 != str2:str1是否不等于str2,等于返回False

    • 类似于 或,且,非的条件判断

    -a (all,就是且),两个条件同时成立才是真。
    -o (or,或),其实一个条件为真,就是真。
    !(非):就是非...

    例子:

    代码:


    图片.png

    结果:


    图片.png

    判断语句

    应该学过一些变成基础都很容易学会,背好格式就好了。

    格式:

    if [条件]; then
    一些内容
    fi

    来练习个书上的例子就好了。

    代码:


    图片.png

    结果:


    图片.png

    上面的代码用了两个if语句,现在换成if ..elif ...esle 试试。

    代码:


    图片.png

    现在只要一个if语句就能完成啦。


    3.case...esac 类似switch


    格式:

    就是什么在什么里面,然后执行一段代码。

    case $变量名称 in
    "变量内容")
    程序内容
    ;;
    "变量内容")
    程序内容
    ;;
    *)
    程序内容
    ;;
    esac

    例子:

    代码:


    图片.png

    结果:


    图片.png

    4. 循环:for while... do...done, until... do... done


    while格式:

    while [条件]
    do
    程序内容....
    done

    例子:计算机1+2+3+....+100的值
    图片.png

    结果:


    图片.png
    • 注意的地方,以前说过的,=号两边不能留空白。
    • 中括号里面每个组件都要分开。

    until格式:

    until [条件]
    do
    程序内容....
    done

    例子:改了下上面的例子,改成until格式。
    图片.png

    发现条件反了过来,结果还是5050。类似于java的do while。

    for格式:

    for ((初始的值;终止的值;每次增加的值))
    do
    程序内容....
    done

    例子:
    图片.png

    5.function,功能函数


    function格式:

    function 名称 () {
    程序内容....
    }

    例子,定义一个函数,输入一个名字,输出hello+名字。

    代码:


    图片.png

    结果:


    图片.png

    相关文章

      网友评论

        本文标题:[Linux](十七) --shell bash学习----基本

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