shell

定义

用户和内核之间沟通的桥梁,即是命令行解释器,又是脚本编程语言

作用

shell负责接收用户输入的命令,翻译成内核看得懂的指令,并执行操作提供文本界面,让系统通过命令跟用户沟通

命令分类

内置命令 如cd,echo,pwd无需调用外部程序,直接由解释器执行

外置命令 ls grep 查找调用对应的可执行程序

编程

创建文件

1 创建脚本文件 vi***.sh

2 提升文件权限 chmod 777 ***.sh

3 执行该文件 ./***.sh

变量操作

定义:变量不需要加类型,直接写变量名,且不要加空格 例:c=10

使用:使用变量的数据,需要在变量名前加$

输入变量:read 变量名

取消变量:unset 变量名

只读变量:readonly 变量名(不可修改、不可取消)

引号区别
  • 双引号 "":解析变量,需用 ${} 避免拼接歧义

  • 单引号 '':原样输出,不解析任何变量

字符串操作
  • 取长度:${#str}

  • 从某位置截取:${str:起始:长度}

  • 从某位置截到尾:${str:起始}

  • 从倒数位置截取:${str:-n}${str:(-n)}

Shell 预定义变量
  • $0:脚本 / 命令名

  • $1~$9:第 1~9 个参数

  • $@:所有参数(不含 $0)

  • $#:参数个数

  • $$:当前进程 ID

算术运算
  • 命令:expr

  • 规则:运算符两边必须有空格

  • 乘法需转义:\*

  • 示例:expr $a + $bexpr $a \* $b

常用判断运算符
1. 数值关系
  • -eq 等于 格式:$a - eq$b

  • -ne 不等于 格式:$a - ne$b

  • -gt 大于

  • -ge 大于等于

  • -lt 小于

  • -le 小于等于

  • -a 并且

  • -o 或者

2. 文件判断
  • -e 存在

  • -f 普通文件

  • -d 目录

  • -r 可读

  • -w 可写

  • -x 可执行

  • -b 块设备 格式: -b 文件名

  • -ot 比… 旧 格式:文件1 -ot 文件2

  • -nt 比… 新 格式:文件1 -nt 文件2

if 条件语句

1 单分支

if 条件
then
  语句
fi

2 双分支

if 条件
then
  语句1
else
  语句2
fi

3 多分支

if 条件1
then
  语句1
elif 条件2
then
  语句2
else
  语句3
fi
测试语句写法
  • test 条件

  • [ 条件 ]

循环指令
while 循环
  • 作用:条件为时,重复执行代码

  • 格式

while 测试条件
do
  循环代码
done
  • 常用搭配:test[ ] 判断

until 循环
  • 作用:条件为时执行,直到条件变才停止

  • 格式

until 测试条件
do
  循环代码
done
for 循环
  • 作用:遍历列表 / 参数,依次执行

  • 格式

for 变量 in 列表/参数
do
  循环代码
done
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐