基础
1 | 当在命令行执行一个 ls命令,实质上是 echo了一个ls字符,然后交给bash处理,像下面这样: |
强大shell脚本组成
1 | 命令、变量和流程控制语句 |
脚本编写-考虑点
1 | (1) 有没有脚本放在同一目录 |
shell脚本的建立和执行
1 | 脚本存放命令: |
1 | #!/bin/bash |
sh与bash有区别吗?
1 | 通过命令:ls -l `which sh` 可以看到sh命令是bash的软链,所以没有区别 |
检查bash是否有漏洞
1 | env x='() { :;}; echo be careful' bash -c "echo this is a test" |
编辑shell文件自动添加shell注释等信息
[root@zyops ~]# cat .vimrc
1 | autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" |
使用
1 | 在/server/scripts目录,创建 xxx.sh即可 |
shell脚本执行顺序
1 | 从上到下 |
shell脚本执行
1 | #执行shell |
变量
1 | 全部变量(又名环境变量) |
1 | 查看系统全局变量 |
定义全局变量的方法:
1 | export A=1 |
为什么要定义变量?
1 | 多次被重复使用的命令就可以使用变量替代 |
shell特殊变量
位置变量
1 | echo $? #检查上一个命令执行结果,0表示成功,1表示失败 |
1 | echo $0 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/11/25/shell高级编程-进阶1/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!