美文网首页
shell 快速入门的知识点 待续。。

shell 快速入门的知识点 待续。。

作者: 天空蓝雨 | 来源:发表于2019-12-06 19:49 被阅读0次

    shell本身是一个命令解释器,介于操作系统的内核(kernel)态和用户态之间,可以执行系统调用及系统命令等,让用户以此来与操作系统实现互动。

    目前,大部分Linux系统预设的shell都是bash。

    老规矩  : # ! /bin/sh  指定解释器的位置 ,这样执行脚本,chmod  +x  xx.sh     就可以直接  ./xx.sh  了 

    (注意直接./ 运行,要先获得可执行权限)

    /bin/sh      hello_world.sh  或者 命令行直接运行,这脚本第一行指定的解释器,没就没用了

    (# shell中只有单行注释)

    shell 中的变量:

    和Python等动态语言类似,Bash变量在使用时直接定义,如 aaa="sadfas"

    注意变量,只能是    数字 、字母、 下划线  (数字不开头)组成。另外 = 两边不能有空格(会报错哦)

    使用:$name  或者${name}  (推荐,因为这样可以更好地,分割变量 )

    readonly  name  ——》 设置 下面的语句只能读取,不能更改此变量

    unset  name   ——》 删除此变量,只读时,不可删除

    local            一般用于局部变量声明,多在在函数内部使用

    shell    脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止   函数的参数自然是属于local 的,函数内优先使用local 定义的变量

    shell 字符串 :

    有 '   ' 单引号  和  "  " 双引号 之分 

    单引号: 里面不能有单引号 ,用 \ 转义也不行  

    单引号:中对变量引用是无效的,单引号中的字符都会原样输出

    双引号:里面可以有转义字符,可以有变量

    字符串亦可以不用引号  (奇葩)

    字符串长度  ${#name}  字符串切片 ${name:1:4}   截取第二个和第四个

    字符串 拼接  :

    str1=$name$url    #中间不能有空格  (不加引号)

    str2="$name $url"    #如果被双引号包围,那么中间可以有空格

    str3=$name": "$url    #中间可以出现别的字符串  (这种写法容易出错哦)

    str4="$name: $url"    #这样写也可以  

    str5="${name}Script: ${url}index.html"    #这个时候需要给变量名加上大括号 (最常见的写法了)

    只有当变量是纯数字时,该变量才是“数字类型的”,否则就是字符串类型的。

    后续  :

    执行命令,可以直接写,如果拿到结果到变量存储,就要用:

    xx=`....` 这种形式  

    函数传参  可以  直接  func   a b c d  # 然后函数里面用  $1   引用第一个参数    $2  (第二个参数,$0 是脚本名)

    从键盘读入数据  :

    read   -p "提示文字" -n 6 (6 位长度 , 6位自动结束) -t 5 (限时5 s) -s password (隐藏输入内容)  最后一个password 相当于变量 ,可以在后面的语句中使用它  

    如   read  -p "请输入用户名"  name

    echo  " your name is ${name} "

    read  -p " 请输入密码 "  -s password1

    read  -p " 请请确认密码 "  -s password2

    if [ password1 != password2 ]    

    then

        echo "两次输入的密码不一致"

    fi

    获得 函数返回值:

     $?  上一句命令的返回值,如果没有返回值,则不出错则,默认返回值为1

    例如、echo  "aa"   这个命令的返回值就是 "aa" 

    运算符  : 这个是重点啊,有缘再写吧

    数学运算符  :

    关系运算符:

    布尔运算符:

    逻辑运算符:

    字符串运算符:

    文件测试运算符:

    https://www.cnblogs.com/include/archive/2011/12/09/2307905.html    csdn  shell 的 if 判断

    https://blog.csdn.net/weixin_37569048/article/details/80039941     CSDN  shell 脚本if判断多个条件

    相关文章

      网友评论

          本文标题:shell 快速入门的知识点 待续。。

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