工作记录
今天是2021年7月28日,星期三
在做出区块链节点监控系统后,公司暂时没有别的需求,南京与本地的同事对监控系统暂时也没有提出新的修改意见。。。
所以今天只能自己学学运维方面的基础知识了🤔
任务清单
🤣我觉的这个任务清单今天应该换个名字,改叫“学习清单吧”,哈哈哈
- 认识shell,学习shell脚本的运行与编写规范
- 学习shell中基本变量的定义与使用以及三种变量类型
- 学习只读变量与删除变量的知识并应用
- 学习shell中字符串的单双引号的规则以及拼接字符串、获取字符串长度、提取字符串和查找字符串这些方法
任务记录
挑几个自己觉得比较重要的知识点记录一下😉
记录一:认识shell,学习shell脚本的运行与编写规范
shell脚本文件的开头第一行必写的一个语句 #!/bin/bash
,
其中#!
是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种shell
运行shell脚本的方法有两种
- 做可执行程序:
shell脚本编写完成后,先保存成example.sh
这种样式,然后进入对应的文件夹中,
chmod +x example.sh
./example.sh
- 做解释器参数:
一样先cd
到相关目录,然后输入一下指令(二选一):
/bin/sh example.sh
/bin/php example.sh
这种运行有个好处,不用在脚本文件开头写 #!/bin/bash
了
记录二:学习shell中基本变量的定义与使用以及三种变量类型
三种变量类型知道就好。。。
基本变量的定义:
直接定义就好啦,如下:
#!/bin/bash
name="zyf"
echo $name #输出:zyf
echo "My name is ${name}duang" #输出:My name is zyfduang
还是比较好记的,就是需要注意两点:
- 变量名称与等号之间以及等号与变量内容之间不能有空格,这个需要注意[手动狗头]
- 输出变量的时候为
$variable_name
或${variable_name}
,合理的运用{}有助于系统对变量的识别
记录三:学习只读变量与删除变量的知识并应用
只读变量好理解,就是字面意思
删除变量相当于把变量的内容给抹掉清零一样
readonly variable_name # 只读变量
unset variable_name # 删除变量
记录四:学习shell中字符串的单双引号的规则以及拼接字符串、获取字符串长度、提取字符串和查找字符串这些方法
单双引号:
个人感觉shell脚本里面的单双引号规则好麻烦,特别是单引号,为了便于记忆,以后尽量只写双引号,双引号还是比较符合基本规则的:
# 双引号里可以有变量
# 双引号里可以出现转义字符
# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的(手动狗头)
# 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用(手动狗头)
#!/bin/bash
name="zyf"
str="My name is \"${name}\" !"
echo -e $str
# 输出:My name is "zyf" !
注意:上面栗子中的-e
参数可以让 echo 命令解析转义字符
拼接字符串:
还是推荐使用双引号,单引号的规则真多,嫌弃😐
#!/bin/bash
name="zyf"
greeting="Hello, "$name" !"
echo greeting
# 输出:Hello, zyf !
注意:上例中 "Hello, "$name" !"
,其中$name
前后都不能有空格
获取字符串长度:
没啥好说的,记住就好
#!/bin/bash
str="abcd e"
echo ${#str}
# 输出:6
提取字符串:
栗子🌰如下:
#!/bin/bash
str="abcdefg"
echo ${str:1:4}
# 输出:bcde
# 第二句的意思是在字符串str中,从索引值为1的字符开始(包含索引值为1的字符)取4个字符出来,方向向后
注意:第一个字符的索引值为0
查找字符串:
话不多说,看栗子🌰:
#!/bin/bash
str="abcdefg zyf lulu"
echo `expr index "$str" zb`
# 输出:2
第二句的命令意思为在字符串str中,寻找字符z或b的位置,按照从左到右的顺序寻找,哪个字母先出现就计算哪个
注意:这个指令的输出可以看作字母的索引值+1
总结
今日,怎么说呢~
没有特别任务,监控系统现在也做完了,现在只能等待公司给指派新的任务,在等任务期间只能一边学习运维的其他知识,一边整理之前学习的东西了。
似乎有运维内味了,跑死服务器,闲死人❓