N.1 介绍
1)不同的shell解析器,功能不同,Centos默认使用的是/bin/sh 和 /bin/bash作为shell解析器。 而sh -> bash #它们是一个软连接的关系 |
N.2 脚本基本制作
N.2.1 格式
1)脚本的格式 (1)编辑 vi test.sh,以sh后缀。开头要以#!/bin/sh(指定解析器)为第一行 在下面编写命令。 #!/bin/bash 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的 (2)shell的路径。#!和#不是一个意思,前者不是注释,后者是注释。 (3)注:"冒号;" 可以使用换行enter来替代,每换一次行就代表一条命令。 而尾部加 \斜杠是由于一条命令写不下,所以要求尾部加斜杠。 2)脚本的符号使用 使用双引号:如果命令有特殊字符 美元符$, 反斜杠\, 反引号, 感叹号!。比如 \ 在单引号没有转仪功能,而在双引号就有转义功能。 使用单引号:就是一个完全的字符串。如果用了复杂的命令,也可以在双引号里面嵌入单号使用。 4)编辑脚本 [root@bigData111 ~] vim test.sh #!/bin/bash echo "helloworld" 5)执行 (1)不加自行权限的执行 [root@bigData111 ~] bash test.sh [root@bigData111 ~] sh test.sh #或者使用sh自行也是可以 使用该命令执行脚本可以不用给脚本加文件权限。 (2)加执行权限的执行 [root@bigData111 ~] chmod u+x test.sh [root@bigData111 ~] test.sh #可以直接收入即可,就不用指定解析器了。 6)注意点: 其实脚本 test1.sh 不一定非要写后缀,直接写成test1(注 要有执行权限)只不过脚本目录要保存在 /root/bin/test1目录下面,然后不管在哪一个路径下,直接test1远行命令,都会自动到 /root/bin/该目录下先查找。即用户定义的linux命令优先执行,后执行系统提供的命令。 |
N.3 多命令分隔符
1)Linux 在一个命令行上执行多个命令 (1)[ ; ] 如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令。 (2)[ && ] 如果命令被 && 所分隔,那么命令可能不是一直执行下去,但是中间有错误的命令存在就不会执行后面的命令,没错就直行至完为止。 (3)[ || ] 如果每个命令被双竖线 || 所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确与否。如果执行到错误的命令就是继续执行后一个命令,一直执行到遇到正确的命令为止,注意,这不是”或“ |
N.4 命令嵌套
命令嵌套一定要用 ` ` 符号括起来,注意这个不是单引号,是斜单引号。 如下案例: [root@cloud107 ~]# mkdir ` date +"%Y-%m-%d-%H:%M:%S"`.log [root@cloud107 ~]# ll drwxr-xr-x. 2 root root 6 8月 17 10:46 2022-08-17-10:46:08.log |
N.5 shell脚本开发工具
IDEA环境配置: IDEA编写运行shell脚本 IDEA中编写并运行shell脚本的实现(IT技术) 这里编写不支持复杂的远行, 只支持一些基本的操作,有些命令只有linux有,不过可以做语法检查,这里是可以的。 格式没有写好会报错。所以先在idea编写好,然后放在llinux环境远行 |