个人技术分享

为什么要学shell?能做什么?

答:CI/CD 持续集成,自动化部署作业方式,需要将一系列linux命令程序化,shell 就能做到,提高运维人员的工作效率。

指定解析器:
(1) shell解析器       # !/bin/bash
(2) python解析器   # !/usr/bin/python
新建shell文件默认没有执行权限: chmod 777 hello.sh 

定义变量, 等号左右不能有空格,if的中括号刚好相反,if[ "x" = "y" ]

name="ldj" 

获取变量

${name} 或 $name 

特殊变量

$0   获取shell脚本的文件名,以及脚本路径

$n   获取输入第n个参数,输入参数是用空格分割
$#   获取输入参数的个数,一般用作if判断条件
$ @ 以空格分割,获取每一个输入的参数

$*   "$*" 将输入所有参数作为一个整体参数,若没有双引号,则效果同$@

常用参数

-f    (find,判断是否存在文件)

-d     (判断目录是否存在)

-x     (判断文件是否有执行权限)

-n     (notnull, 判断不为空)

-a     (and,并且)

-o   (or , 或者)

简写if-els

[ "${name}" = "ldj" ] && echo yes || echo no

[ -f  "hello.sh" ] && echo yes || echo no

[ -f  "hello1.sh"  -a -f "hello2.sh" ] && echo yes || echo no

比较符号