对于大数据程序员,shell程序(脚本),在维护集群时非常有用,用的很多。
shell是用户用来和系统内核交互的模块(子系统)。
shell的版本很多,bash shell是其中的一种。
shell脚本的一些基本概念:
1) 脚本首行必须是:
#!/bin/bash
就是向os说明,指定要使用的解释器。
2) shell脚本必须有可执行权限。
3) shell脚本文件名的后缀,一般约定是.sh,其实用任何后缀都可以,不用后缀也可以,只不过约定.sh后缀是为了让人知道这是一个shell脚本。
语句结束不需要有分号“;”
案例:编写一个shell脚本,执行后向屏幕输出hello~。
在编辑后,发现shell脚本没有可执行权限,用chmod指令,添加可执行权限x:
执行脚本,输出结果。
这里的./意思是当前路径。
如果使用绝对路径,可以直接通过输入sh文件的绝对路径来执行脚本,并不是说“./”才是执行文件的动作符号。
但是如果用相对目录,就不能省略 ./ ,否则系统无法识别这个指令。
如果不刻意chmod给脚本文件可执行权限,也可以通过 sh <脚本文件>,来执行脚本文件:
下图中的jack.sh文件就没有x权限,但是可以直接通过 sh 指令,来执行脚本文件。
(这种方法不推荐,通常都是赋予文件一个x权限)
总结一下,执行shell脚本文件的方法有3种:
1) 相对路径执行shell脚本文件: ./<脚本文件> (脚本文件必须有x权限)
2) 绝对路径执行shell脚本文件:<脚本文件绝对路径>(脚本文件必须有x权限)
3) (不推荐)通过sh命令,执行shell脚本文件:sh <脚本文件>(脚本文件不需要x权限)