shell quick

😀
这里写文章的前言: 一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
 

📝 主旨内容

linux基础—-shell速查

shebang机制

脚本基本结构

脚本调试

位置变量

参数
说明
传递到脚本的参数个数
以一个单字符串显示所有向脚本传递的参数。 如 "$*" 用「”」括起来的情况、以”$1 $2 … $n” 的形式输出所有参数。
脚本运行的当前进程 ID 号
后台运行的最后一个进程的 ID 号
与 $\* 相同,但是使用时加引号,并在引号中返回每个参数。 如”$@” 用「”」括起来的情况、以”$1” “$2” … “$n” 的形式输出所有参数。
显示 Shell 使用的当前选项,与 set 命令功能相同。
显示最后命令的退出状态。0 表示没有错误,其他任何值表明有错误。

注意变量

“ “ 弱引用,其中的变量引用会被替换为变量值
‘ ‘ 强引用,其中的变量引用不会被替换为变量值,而保持原字符串

只读变量

比如:$UID 如果UID可以赋值,那UID=0 是管理员就危险了

字符串

运算符
说明
字符串为 “null”, 意思就是字符串长度为零
字符串不为 “null”

运算

运算符
说明
是否大于
是否大于等于
是否等于
是否不等于
是否小于
是否小于等于

文件测试

参数
作用
与-e相同,已经被弃用,但不推荐
文件存在性测试,存在为真,否则为假
是否存在且为块设备文件
是否存在且为字符设备文件
是否存在且为目录文件
是否存在且为普通文件
存在且为符号链接文件
是否存在且为命名管道文件
是否存在且为套接字文件
文件大小不为零
表示这是一个块设备 (软盘,光驱,等等.)
这是一个符号链接
文件是否具有可读权限
文件是否具有可写权限
文件是否具有可执行权限

if 语句

case 语句

bash配置文件

全局配置: /etc/profile /etc/profile.d/\*.sh /etc/bashrc
个人配置: ~/.bash\_profile ~/.bashrc

for语句

while

select

shift

将参数列表 list 左移指定次数,缺省为左移一次

函数

信号

数组

数组切片

字符串

字符串切片
示例
说明
${\\#var}
返回字符串变量var的长度
${var:offset}
返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,到最后的部分,offset的取值在0 到 ${\\#var}-1之间(bash4.2后,允许为负值)
${var:offset:number}
返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,长度为number的部分
${var: -length}
取字符串的最右侧几个字符(注意:冒号后必须有一空白字符)
${var:offset:-length}
从最左侧跳过offset字符,一直向右取到距离最右侧lengh个符之前的内容
${var: -length:-offset}
先从最右侧向左取到length个字符开始,再向右取到距离最右侧offset个字符之间的内容(注意: -length 前空格)

查找替换

示例
说明
查找var所表示的字符串中,第一次被pattern所匹配到的字符串,以substr替换之
查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substr替换之
查找var所表示的字符串中,行首被pattern所匹配到的字符串,以substr替换之
查找var所表示的字符串中,行尾被pattern所匹配到的字符串,以substr替换之

查找并删除

示例
说明
删除var表示的字符串中第一次被pattern匹配到的字符串
删除var表示的字符串中所有被pattern匹配到的字符串
删除var表示的字符串中所有以pattern为行首匹配到的字符串
删除var所表示的字符串中所有以pattern为行尾所匹配到的字符串

字符大小写转换

示例
说明
把var中的所有小写字母转换为大写
把var中的所有大写字母转换为小写

变量赋值

变量配置方式
str没有配置
str为空字符串
str已配置非为空字符串
var=expr
var=
var=$str
var=expr
var=expr
var=$str
var=
var=expr
var=expr
var=
var=
var=expr
str=expr var=expr
str不变 var=
str不变 var=$str
str=expr var=expr
str=expr var=expr
str不变 var=$str
expr输出至stderr
var=
var=$str
expr输出至stderr
expr输出至stderr
var=$str

eval

bash Shell 提供了两种格式实现间接变量引用

expect

退出脚本级别

exit 退出脚本
break 跳出循环
continue 跳过本次循环
return 退出当前函数

技巧

写脚本时,可根据软连接的名称和原始文件名称不同,可以实现不同的功能
cat不支持缩进,脚本中更改,将行首使用TAB标记

🤗 总结归纳

总结文章的内容

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
Loading...