003 Shell脚本编程1 shell介绍 shell运行环境和运行方式 shell变量类型 shell数组 shell注释 数学运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符

编程
在这里插入图片描述
centos自带的就有好多 其中最常见的是bash这个
在这里插入图片描述
例子
在这里插入图片描述
进入编辑我的第一个shell脚本程序
第一句写井号感叹号然后写解释器目录
例如 #!/bin/bash 这是一种约定俗称的写法
然后写内容 打印一句话helloworld
在这里插入图片描述
保存退出
在这里插入图片描述
然后怎么运行呢
一种加上可执行的权限
一种是加上解释器来执行

刚开始时不能执行的 没有权限
加上 chmod 744 ./firstshell后
再查看一下 都变成绿色了 一般绿色就是可执行的
然后再执行 打印出了helloworld
在这里插入图片描述
现在试试第二种方法
先把权限去掉
chmod 644 ./firstshell
然后加上解释器运行
在这里插入图片描述


相关变量
在这里插入图片描述
在这里插入图片描述
写第二个文件 内容如上 然后执行 结果如上
在这里插入图片描述
变量名和等号之间不能有空格!!!
变量名首字符也不能是数字

变量的赋值
在这里插入图片描述
使用的是 class=expr 3 + 3
注意这个单引号不是真的单引号是键盘左上角那个点
在这里插入图片描述

取值的问题
dollar符号 $a
或者dollar符号加大括号 ${a}
在这里插入图片描述
在这里插入图片描述
还有字符串拼接
用大括号表示分隔 不然就混在一起了 不能识别
在这里插入图片描述

在这里插入图片描述


然后shell里面还有一个只读变量的定义
一旦被定义就不能修改了 只能读 相当于做一个常量

在这里插入图片描述
它会提示你
在这里插入图片描述

还有一个unset 删除这个变量值
在这里插入图片描述
这样就取不出来了
在这里插入图片描述


在这里插入图片描述
shell中的变量类型
局部变量
环境变量
shell变量

shell编程语言是弱类型语言
写字符串的时候 class=1701a
不用引号
用单引号
用双引号 都行
不过最好用引号引起来

我们举一个其它例子
在这里插入图片描述
echo 输出结果 用单引号引起来 表示要输出字符串 不会输出变量值
结果
在这里插入图片描述

而用双引号引起来 就会正常输出 是变量就输出变量值
在这里插入图片描述
在这里插入图片描述

双引号里面 shell会识别变量以及转义符
单引号则不会 将会原样输出 把它作为一个字符串输出

还有一种引号 叫反引号

加上反引号 shell会认为这里面是命令 所以才会把它的值取出来
反引号里面的内容 通常是Linux里面可执行的命令
在这里插入图片描述
在这里插入图片描述

然后我们再说一下字符串的拼接
什么符号都不加
直接跟在变量后面 (不过记得变量要跟字符串区分开 比如变量上加大括号)
在这里插入图片描述··
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后获取字符串长度
{#a} 花括号 井号 变量名 即可取出字符串长度
在这里插入图片描述
在这里插入图片描述

取字符串内容
${a:i:j}
dollar符号 花括号 字符串名 冒号 下标 冒号 个数 花括号
i是字符串下标 从0开始
j是要提取的字符串个数
下面的例子 从下标8 提取5个 正好提取了 class (截屏问题没显示完整)
在这里插入图片描述
在这里插入图片描述

再一个就是
取索引位置
``expr index “$class” is `
显示反引号 expr index 然后双引号将变量引起来 然后写变量 $dollar符号 变量名 然后写要进行索引的内容 反引号结束

在这里插入图片描述
结果是5
所以从1开始数
第几个
A是第5个
在这里插入图片描述


然后是shell数组
在这里插入图片描述
在这里插入图片描述
我们新建一个数组文件
在这里插入图片描述
编辑完后记得赋予其权限 才能执行
注意使用了小括号
里面可以放数字 可以放字符串
使用空格分隔
在这里插入图片描述
然后打印一下 哎 没输出内容
改一下 要想输出数组内全部内容echo ${arr1[]}
取变量值的方式 里面写数组名中括号[
] 里面加星代表所有的值
在这里插入图片描述
在这里插入图片描述
我们来看一下 数组取某一个值时 下标是从0开始
然后越界的话
取出的值为空 并不会报错

shell中数组越界不会报错 只会打印出空值
在这里插入图片描述
在这里插入图片描述

还有数组单个赋值的方式 跟其他语言差不多
单个附初始值 还可以跳跃性的赋值
在这里插入图片描述
我们打印一下没有赋值的arr3[2]
结果是空值
在这里插入图片描述
还可以覆盖 即重复值
在这里插入图片描述
在这里插入图片描述

不光是*星代表所有 @也是
echo ${arr3[@]}
在这里插入图片描述
在这里插入图片描述
还有一个看
数组长度的

在这里插入图片描述
需要写所有的数组内容的长度
如果只写arr1 不写*或@ 就会打印1 即数组的第一个元素长度1
在这里插入图片描述
结果arr1数组长度6 正确


shell中的注释
在这里插入图片描述
shell基本运算符
在这里插入图片描述
数学运算符
注意乘号要加一个转义符号*才能识别

同时 注意 运算符前后都要有空格 不然报错

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
关系运算符
只支持数字比较 不支持字符串 除非字符串的值是数字
在这里插入图片描述

在这里插入图片描述
这个地方是要有空格的 [ ] 这个中括号前后要有空格

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
布尔运算符
把刚刚的稍微改一下
在这里插入图片描述
在这里插入图片描述

-o是或
-a是与

在这里插入图片描述
逻辑运算符
在这里插入图片描述
字符串运算符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
文件测试运算符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个目录下有个shellfirst文件 该文件可读 不可执行
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值