shell:$0...$n、引号、字符串命令、运算符

一、概述

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。

Shell 既是一种命令语言,又是一种程序设计语言 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

二、使用

1、使用vim创建并编辑一个新的.sh后缀的文件

2、echo表示输出,输出的语句默认string语句,无论加不加双引号或者单引号。

3、保存并退出,使用sh 文件名.sh 运行文件。

        运行:
        1.通过sh命令执行
            例如:sh helloworld.sh
        2.通过bash命令执行
            例如:bash helloworld.sh
        3.通过chmod命令把文件修改为可执行的文件然后通过./文件命令.sh来执行    
            例如:./helloworld.sh(必须在当前目录下)

三、变量

1、定义和初始化
        格式
            变量名称=值
        例如:
            x=10 "abc edefg"
        注意:
            等号两边不能有空格


2、使用:通过$区分变量还是一句话
        格式1:
            $变量
        格式2:
            ${变量}
        注意:
            格式1,会把$后所有相连内容看做一个变量
            格式2,${}表示值引用{}之中的内容分,对相连的内容做了一个区分 

四、$0...$n

表示接收外部参数(执行脚本时,传递的参数)
    格式:
        $下标
    注意:
        $0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)    
        下标大于一位数只能使用${}获取参数,因为$下标只把第一位数据看做下标
        $*获取所有参数
        $#获取所有参数个数        

 五、引号

单引号:默认里面的全部内容都是字符窜,不能引用变量
双引号:可以引用变量($变量),拥有特殊含义的内容,且可以使用关键字

    注意:
        如果有多个引号,连续的形成一对,有单个双引号,会报错,如果想在双引号中输出双引号加上“\”转义字符
        引号中使用其他引号,其他引号做字符串使用,使用相同引号输出是会默认不存在。
 

六、字符串命令,字符窜本身不会备改变

1、获取长度
        格式:
            ${#变量}
2、截取:
        格式:
            ${变量:开始位置:长度}
        注意:
            ${str::5}:从0获取5个
            ${str:0}:从0获取到末尾
3、替换单个
        格式:
            ${变量/旧/新}
        注意:从左向右替换第一个
4、替换所有
        格式:
            ${变量//旧/新}
    注意:替换不会再原字符上进行修改,想要修改原字符串只能重新赋值

   5、 删除
        从头开始删除
            ${变量#表达式}:从头开始连续依次的匹配,一但匹配成功,第一次就开始删除
            ${变量##表达式}:从头开始连续依次的匹配,一但匹配成功,最后一次才开始删除


        从尾开始删除
            ${变量%表达式}:匹配第一个删除
            ${变量%%表达式}:匹配最后一个删除
        注意:从未开始删除,表达式还是从左向右去写
            删除不会再原字符上进行修改,想要修改原字符串只能从新赋值

 

 七、运算符

1、算术运算符
        bash不支持简单的数学运算,可以通过命令实现expr
        格式1:
            `expr 值 + 值`
            注意:符号两边需要加上空格
        格式2:不需要关心空格和有没有引号的问题,可以自动识别变量。
            $[值+值]  $[变量1+变量2]

2、比较运算符: >   <    >=   <=....
        格式:
            $[值1 符号 值2](符号两边空格加不加无所谓)
        注意:比较的结果用1(true)和0(false)表示

   1. -eq  (equal的缩写),表示等于为真   

   2. -ne    (not equal的缩写),表示不等于为真

   3. -gt     (greater than的缩写),表示大于为真     

   4. -ge  (greater&equal的缩写),表示大于等于为真

   5.-lt    (lower than的缩写),表示小于为真   

   6. -le   (lower&equal的缩写),表示小于等于为真

 3、逻辑运算符: &/and   |/or     !/not
        例如:
            #判断2>1结果
            echo $[2 > 1]
            #反转2>1结果
            echo $[!$[2>1]]
            #  反转后面的结果2>1 and 2>3  false0
            echo $[!$[$[2>1]&$[2>3]]]
            echo $[2>1 & 2<1]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 =~ 运算符来匹配字符串,例如: if [[ $string =~ pattern ]]; then echo "Matched" else echo "Not matched" fi 其中,$string 是要匹配的字符串,pattern 是正则表达式模式。如果匹配成功,则返回 ,否则返回 1。注意,=~ 运算符只能用于双括号条件语句中。 ### 回答2: 在shell中,`=~`是一个用于对字符串进行正则表达式匹配的运算符。使用`=~`可以利用正则表达式对字符串进行匹配,从而实现字符串的筛选和判断。 使用`=~`运算符进行匹配的一般语法是: ``` 字符串 =~ 正则表达式 ``` 其中,字符串是要匹配的字符串,正则表达式是用于匹配的模式。 在使用`=~`运算符时,有几个需要注意的地方: 1. 正则表达式应该用引号引起来,可以使用单引号或双引号。 2. 如果需要在正则表达式中使用变量,推荐使用双引号引起来,这样可以保持变量的扩展。 3. 如果`=~`的左边是一个变量,变量的值会被作为字符串进行匹配;如果左边是一个字符串,直接对该字符串进行匹配。 4. 当匹配成功时,`=~`的返回值为0;匹配失败时,返回值为1。 5. 如果要提取匹配结果,可以使用BASH_REMATCH数组。BASH_REMATCH[0]存放整个匹配结果,BASH_REMATCH[1]存放第一个括号捕获的内容,以此类推。 下面是一个简单的示例,演示了如何使用`=~`运算符进行字符串匹配: ``` #!/bin/bash str="Hello, world!" if [[ $str =~ "Hello" ]]; then echo "匹配成功" else echo "匹配失败" fi ``` 在这个示例中,字符串`str`与正则表达式"Hello"进行匹配。由于字符串中存在"Hello"子串,所以匹配成功,输出"匹配成功"。 ### 回答3: 在shell中,可以使用`=~`运算符来进行正则表达式的匹配。该运算符用于将一个字符串与一个正则表达式进行比较。 使用`=~`运算符来匹配字符串的步骤如下: 1. 在条件语句中使用`=~`运算符字符串与正则表达式进行匹配。例如:`if [[ $string =~ regex ]]; then`。 2. `$string`是待匹配的字符串,`regex`是要匹配的正则表达式。 3. 注意,在正则表达式中,可以使用各种模式和元字符来指定匹配规则,如`.`代表任意字符,`*`表示匹配前面的字符任意次数等。 4. 匹配成功时,条件语句中的代码块将执行。可以在匹配成功后使用`$BASH_REMATCH`来获取匹配到的子字符串。例如,`matched_string=${BASH_REMATCH[0]}`。 需要注意的是,`=~`运算符只能在双方括号`[[ ]]`条件语句中使用,而不能在单方括号`[ ]`中使用。另外,`=~`运算符默认区分大小写,如果想要进行不区分大小写的匹配,可以使用`shopt -s nocasematch`命令来设置。 综上所述,通过正确使用`=~`运算符和正则表达式,可以在shell中实现字符串的匹配功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值