作为程序员, 你一定见过许多bin目录, 那么你看的懂里面写的代码吗?(一些配置, 启动, 停止等等), 那些就是Shell Script.
或许 你会使用一些常用的linux下的命令(cd pwd mv cp scp 等等)以及vim的常用操作(yy $ p h j k l)等等. 但是Shell Script可能有点不熟悉, 因为日常用的不多嘛. 正常的, 但, 不会写, 至少大致可以看得懂吧. 所以 或许这篇文章可以带你了解一点Shell脚本.
先看一个例子
一个简单的脚本文件 Hello.sh
1 | shell |
解释下咯
1 | 1. 第一行#!表示shell类型, 必须放在首行. 考虑可移植性, 要确认该路径在别的服务器和环境是否存在. |
执行脚本的方式
- sh hello.sh
- source hello.sh
- 如果要直接执行 ./hello.sh, 需要改文件的权限
chmod +x hello.sh
Shell变量
Shell变量
1 | Shell变量无需事先声明, 不严格区分类型, 默认是字符串类型, 未定义是为空串, 可以分为三类. |
Shell数组定义.
1 | 1. 定义 arr1=("a" "bb" "ccc") |
linux中的判断表达式:
1 | 判断是否是一个文件 [ -f /etc ] && echo true || echo false |
脚本中特殊的符号
1 | shell |
if 条件控制
1 | shell |
while循环
1 | shell |
for循环
1 | shell |
for in循环
1 | shell |
seq 10 :可以生成一个序列:从1到10.
字符串常用操作
1 | a=hello |
1 | shell |
1 | > 检测字符串是否为空, 或者是否是未设置. 然后根据判断设置Default值以及ERR_MSG等. 一般使用不多具体的使用时再查. 这里不多介绍. |
函数的使用
1 | shell |
1 | $@可以获取所有与参数的一个列表 |
1 | shell |
1 | 注意: 在函数里面定义的变量和在脚本中定义的变量都是全局的. |
环境变量
- 通过env或者set命令, 查看当前shell的环境变量
- 通过${VAR}或者$VAR访问环境变量
- 通过export命令设置环境变量., 如export JAVA_HOME=VALUE
配置文件
全局配置文件和用户级配置文件, 注意用户级配置文件可以覆盖全局配置文件.
初始化bash环境
1 |
|