使用 Linux 时,多多少少会有 shell 需求,一直都是利用搜索引擎搜索 copy 改改,一到深处需各种查(五花八门),遂自学 。虽多多少少平时有用到过,但基础不牢,地动山摇,所以秉着扎好马步,走的更稳原则,重新温习一遍 Shell ,主要参考 菜鸟教程 和 慕课 断断续续学习了一个月,边看视频边学习,边学习边写代码记录此过程。
学习 shell 需要具备 Linux 基础、正则匹配基础
文本三剑客都可用标准输出和用管道符进行输出
缩进这块有点坑,出了问题你也找不到。shell 其实不需要缩进,但是不缩进呢,这代码简直就是天书。
shell 缩进是青铜的话,[] 与 () 就是 最强王者,缩进 不好可能会报错,[] 与 () 用不好,代码就只有 bug。
单小括号 (),有三种用途:命令组、命令替换、初始化数组。
双小括号 (( )),有四种用途:整数扩展、运行 C语言 代码、重定义变量值、算术运算比较。
单中括号 [],有四种用途:内部命令、比较运算符、字符范围、索引编号
[[ ]] 是 bash 程序语言的关键字。[[ ]] 有四种用途:关键字、字符串的模式匹配、条件判断、单独的元素
例子:
if ($i<5) #此处有问题,改为if (($i<5))
if [ $i -lt 5 ]
if [ $a -ne 1 -a $a != 2 ]
if [ $a -ne 1] && [ $a != 2 ]
if [[ $a != 1 && $a != 2 ]]
for i in $(seq 0 4);do echo $i;done
for i in `seq 0 4`;do echo $i;done
for ((i=0;i<5;i++));do echo $i;done
for i in {0..4};do echo $i;done
更多括号问题可参考: [shell中各种括号的作用()、(())、[]、[[]]、{}](https://blog.csdn.net/taiyang1987912/article/details/39551385)