shell编程

目录

 

怎样创建一个shell文件

 位置变量

单引号和双引号

 字符串


Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言

1怎样创建一个shell文件

  创建一个名为test的shell文件:

 进入文件后输入这个注释

这个内容是什么意思呢? 我先写了一个str的变量,赋值“hello world”的字符串

echo 就是在终端输出的意思 ,加上$的意思是我后面跟的是变量,不然就是一个普通的字符串 

 运行:
        1.通过sh命令执行
            例如:sh test.sh


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

 

 修改下权限

 

这下可以运行了

 

 2.变量 

变量不需要声明,初始化不需要指定类型

shell中数据类型都是String类,是动态数据类型

变量命名 1:只能使用数字,字母和下划线,且不能以数字开头

2:变量名区分大小写

3:建议变量的名称要通俗易懂 注意:变量赋值是通过等号(=)进行赋值,在变量、等号和值之间不能出现空格。 显示变量值使用echo命令( 加上$变量名,也可以使用${变量名}

可以看见变量两边要是出现了空格,颜色变成了白色,只是普通的字符串而已。

  

  

这里我们发现了下面这个出现了问题,name这个变量 并没有输出

因为他和后面的is连在了一块,识别的是$nameis;没有这个变量,输出就是空

 会把$后所有相连内容看做一个变量直到出现了下一个$,${}表示值引用{}之中的内容分,对相连的内容做了一个区分 

用花括号分开的内容就会识别成单独的变量

 位置变量

shell规定的变量:$0...$n

$0永远表示脚本名称(所以脚本名称不算数,$0也不算第一个参数)    

$表示获得第n个参数,参数是我们自己使用shell时传入的

$*获取所有参数

$#获取所有参数个数

 获取的位数超过2位后记得加花括号

$11:你得到的结果只是$1加上了字符串1,${11}才是正确的格式

单引号和双引号

 引号成对存在,如果有多个引号,连续的形成一对, 引号中使用其他引号,其他引号做字符串使用

  

单引号: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

想要输出""符号怎么做到呢?,我先考虑用单引号括起、

  

 这样是不是有点麻烦,双引号中有简单的写法

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

  

 字符串

获取长度        格式: ${#变量}

截取:        格式:${变量:开始位置:长度}
 注意:
            ${str::5}:从0获取5个
            ${str:0}:从0获取到末尾

           ${str:2:5}:从第二位2开始获取5个


    

替换单个
        格式:
            ${变量/旧/新}
        注意:从左向右替换第一个,这里替换并不是原来的字符串本身上修改

替换所有
        格式:${变量//旧/新}
    注意:替换不会再原字符上进行修改,想要修改原字符串只能从新赋值

 

 删除
 从头开始删除:${变量#表达式}:匹配到的第一个删除

这里有一个需要注意的地方,如果表达式写成

结果没有改变

所以我们匹配删除的格式都必须按照从左往右的顺序写出来

 ${变量##表达式}:匹配最后一个删除

从尾开始删除:

 ${变量%表达式}:匹配第一个删除


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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值