目录
1、shell脚本文件的结构
1 、文件的扩展名必须是.sh
2、 文件的首行必须使用#! 指定script的运行shell环境(即脚本解释器) 如:#!/bin/bash
3 、脚本里的行注释符号为#
4 、指令、选项、参数之间即使有多个空格仍会被视为一个空格。
5 、tab键形成的空白也被视为一个空格键
6 、空白行会被忽略
2、shell脚本文件的执行方式
方式一: 使用bash命令来调用实行 -- 只需要有读(r)的权限饥渴
[root@hdp01 ~]# bash *.sh
方式二:直接写script,必须要有rx权限才行
[root@hdp01 ~]# ./*.sh
绝对路径写法: /hadoop/*.sh
相对路径写法: ./*.sh
注意点:
1、第一行 可以没有/bin/bash 因为 在外部使用 bash register.sh 运行的 所以没有也没事
方式三: 借助变量PATH,设置全局变量
将*.sh放入~/bin目录下,因为PATH里拼接了~/bin目录。
注意:~/bin目录必须自行创建
无论在哪个目录 直接 register.sh 都能执行
3、shell中单引号和双引号的区别:
双引号: 双引号里面的内容会有变化
单引号:单引号里面的内容会全部输出 -- 单引号会将所有特殊字符脱意
例子:
[root@hdp01 ~]# NUM=10
[root@hdp01 ~]# SUM="$NUM nihao"
[root@hdp01 ~]# echo $SUM ----- 输出10 nihao
[root@hdp01 ~]# SUM2='$NUM nihao'
[root@hdp01 ~]# echo $SUM2 ----- 输出$NUM hehe
4、$() 与 ${}的区别:
1、$() 其实与 反引号``一模一样,仅用来表示执行的命令
[root@hdp01 ~]# echo $(3+3) --先执行3+3这个运算命令 再输出 6
2、${} 是用来取变量的
[root@hdp01 ~]# echo ${PATH} -- 输出 PATH的路径
3、$((运算内容)) 适用于数值运算
[root@qianfeng01 ~]# echo $((3+1*3)) -- 线束执行()内的运算 再输出 结果 6