学习背景:
公司项目里有证书密钥相关业务用的 .sh 文件处理的,希望通过学习一些基本的概念和语法,能够大致看懂脚本文件。
学习的视频来自哔哩哔哩(https://bilibili.com/video/BV1Eq4y1z7u8?spm_id_from=333.788.player.switch&vd_source=b3ce4818ed27678f8b0409eb33a93b97&p=14)。学完前13节就可以实现我的目标了(大致读懂脚本)。以下是学习笔记:
分类:
sh(bash),csh(tcsh),ksh(lksh)
声明:
#! /bin/bash
调用:
- /xxx.sh或./xxx.sh
> 必须是可执行文件
> 打开新的进程执行脚本文件
- sh xxx.sh
> 不必须是可执行文件
> 打开新的进程执行脚本文件
- source xxx.sh
> 不必须是可执行文件
> 在当前进程执行
export 关键字使变量对子进程可见
变量:
定义变量的时候不加美元符号;
字符串:
单引号里的任何字符都会原样输出;
双引号里面可以有变量
获取字符串长度:${#str}
截取字符串,从第2位开始取3个字符:${str:2:3}
数组:
只支持一维数组,用空格分隔,favs=("足球" "篮球"),${fav[0]} 取第一个,${fav[@]} 取所有元素,${#fav[@]} 取长度
计算:
a=10
b=20
expr $a + $b (加号两边要有空格)
expr $a \* $b
val=`expr $a + $b` (等号两边不要有空格)
echo $val
echo `pwd` > test.sh
read xxx (监控键盘输入)
case 语句
#! /bin/bash
echo 输入
read num
case $num in
1) echo 输入的1
;;
2) echo 输入的2
;;
*) echo 其他
;;
esac