• testerhome学习笔记2_Bash基础


    一、变量

    1.变量的定义:

    a. 变量与变量内容以=连接,等号两边不能有空格。   a=1

    b. 变量名称只能是英文和数字,但开头字符不能是数字。my2name=liyuanyuan

    c.如果变量内容有空格需要使用单引号或者双引号,双引号内的特殊字符可以保持原有的本性,如果是单引号内的特殊字符则仅为一般字符,所以如果是字符,最好用双引号。  d="hello from liyuanyuan" 

    e=`ls`(在``之内的命令将会先被执行)

    d.取消变量用“unset 变量名” 。unset my2name

    e.为变量增加变量内容时,可以用$变量名或者${变量}累加内容。d="$d"2018

    2.变量的使用:

    a.变量的显示用:echo $a或者echo ${a},使用后者更为严谨。比如a="hello";echo $a_1;输出的内容为空,因为a_1不存在;如果echo ${a}_1则输出为hello_1

    b.变量没有定义时也可以使用,默认为空值

    3.预定义变量:

     pwd 是一个命令 表示当前的目录
    echo  $PWD 是一个预定义的变量,PWD=pwd echo $PWD
    echo  $USER 当前用户名
    echo  $HOME 当前用户的家目录
    echo  $PATH 指的是环境变量

    4.数组变量:

    使用()来定义数组变量,内容中间用空格隔开,如array=(1 2 3 4 5), echo ${a[*]}或者echo ${a[@]}都是显示全部数组,

    5.特殊符号的使用

     

    a. 特殊符号的使用
    反斜杠,一般情况下将特殊字符变成一般字符,转义符
    例子:

    echo -e "a
    bb"
    -e 是开启转义模式
    如果没有 -e
    echo "a bb"
    想要打印一个 a"bb
    echo -e "a"bb"
    echo "a\b"

    b. $(ls) 与 ls
    这两个都是用作命令替换的,换言之就是重组命令行的
    执行顺序是先执行反引号里的命令,然后将其结果替换出来,再重组成新的命令行
    举例:
    echo my dir is ls
    echo my dir is $(ls)
    在操作上,这两个东西都能达到相应的效果
    对比:

      1. ``比较容易和''搞混
      2. $()的弊端是,不是所有的类unix系统都支持,但是``都支持

    6.变量的类型

    字符串 a="liyuanyuan"

    数字a=3

    布尔a=true

     

    7.数字型变量的操作

    a.只能进行整数计算a=5;echo $((a+5));

    b.可以对数字型变量进行更新a=5;((a=a+5));echo $a;  echo $((a++));

     

    8.字符串的操作

    a.对字符串进行取值${value:offset:length},对于变量value从第offset个字符截取,长度为length  s="hello from liyuanyuan";echo ${s:6}输出:from liyuanyuan  echo ${s:6:4}输出:from

    b.获取字符串长度${#value} echo ${#s} 输出:21

    c.获取数组元素的个数array=(a b c d e);echo ${#array[@]} 

    d.字符串掐头:echo “${s#hello}”;输出:from liyuanyuan   echo “${s#*o}”输出:from liyuanyuan echo “${s##*o}” 输出m liyuanyuan 两个#号为贪婪匹配,一直匹配到最后一个相应字符 ps:输出后面加上双引号,就是将匹配后的内容当作一个整体。

    f.字符串去尾:echo "${s%liyuanyuan}" 输出:hello from  echo "${s%%y*}" 输出:hello from li

    h.字符串的替换:${s/pattern/string}  echo ${s/liyuanyuan/testerhome}  输出:hello from testerhome

        ${var/#pattern/replacement}:查找var变量存储的字符中最开始处能够由pattern匹配到的内容,并替换为replacement;

        ${var/%pattern/replacement}:查找var变量存储的字符中最后位置能够由pattern匹配到的内容,并替换为replacement;

    i.查找删除:   

      ${var/pattern}:查找var变量存储的字符中第一次由pattern匹配到的内容,并删除;
      ${var//pattern}:查找var变量存储的字符中所有能够由pattern匹配到的内容,并删除;
      ${var/#pattern}:查找var变量存储的字符中最开始处能够由pattern匹配到的内容,并删除;
      ${var/%pattern}:查找var变量存储的字符中最后位置能够由pattern匹配到的内容,并删除;

    g.字符串大小写转换
        ${var^^}:把var变量中的所有小写字母,统统替换为大写;
         ${var,,}:把var变量中的所有大写字母,统统替换为小写;

         ${var~~}:把var变量中的所有大写字母,统统替换为小写,小写的统统替换为大写的

    9.布尔变量 

       a=true;echo $? 输出:0  b=false;echo $? 输出:0,因为她是字符串,如果输入false;echo $? 则输出:1

    10.算术判断

    逻辑判断
    ge 大于等于
    eq 等于
    ne 不等于
    gt 大于
    lt 小于
    le 小于等于

    格式规范:中括号里面的内容和中括号,以及里面的内容中间必须有空格

      

    11.字符串比较

    a.比较两个字符串内容是否相同

     

    b.判断字符串是否为空,-n为空,-z不为空

     

    12.逻辑判断

    -a 等同于逻辑与,等价为&&

    -0 等同于逻辑或,等价为||

    13.内置判断

    -e file 如果文件存在则为真

    -d file 如果文件是一个子目录则为真

    -f file 如果文件是一个普通文件夹则为真

    -r file 如果文件是一个可读文件则为真

    -s file 如果文件的长度不为0则为真

    -w file 如果文件可写则为真

    -x file 如果文件为可执行,则为真

     

    PS:which命令
    用于查找并显示给定命令的绝对路径
    例子:

    which python
  • 相关阅读:
    Js 时间轴和拓扑图
    JQuery OLAP Grid
    Jquery Datatables 动态列名
    CSS3实用菜单
    图片翻转动画
    Java转C#的最佳工具
    Mvc.JQuery.Datatables
    推荐windows下的日志跟踪工具:SnakeTail
    在.net中使用aquiles访问Cassandra(四)
    在.net中使用aquiles访问Cassandra(三)
  • 原文地址:https://www.cnblogs.com/viviian/p/10103768.html
Copyright © 2020-2023  润新知