Linux-Shell 编程技巧学习-1
Introduction
主要记录关于
shell
编程的一些技巧性编写方式
Getting Started
注意: 可以考虑通过终端命令生成所需要运行的脚本,之后再运行脚本实现想要的功能,这样也方便检查命令运行的准确性。
注意: Linux 下的管道符相当于另开一个子进程来运行管道符后面的命令,退出管道符之后,管道符内的变量便不存在了;如
while read
下的管道符使用。
1. 变量的字符串替换
1 | shell_path=/bak/data8/fass1/project_1123/shell |
2. 判断读入的参数个数
通过识别传入脚本的参数个数来判断脚本是否被正确执行
1 | !/bin/bash |
shell 脚本从外读取参数时,如何获取参数的相关信息,如个数,是否执行成功等
1 | 0 --- 当前执行shell脚本的程序名 |
3. 指定脚本执行之后,输出内容的存放路径
一般情况下,
shell
脚本被执行之后,输出内容直接打印在终端,这样不方便后期查看log
信息;故,我们可以考虑将脚本运行之后的打印信息输出到指定文件中
1 | logfile=./log/log.txt |
4. if 语句的判断方式
1 | # 字符串比较 |
5. for 循环的并行操作
在原有的基础上加上 & 符号, 实现并行效果
但是问题来了,要是需要循环的次数太多,那就会同时运行很多任务,这难免占用大量运算资源,所以我们可以考虑控制每个并行任务的执行次数,这样可以减少并行负担
1 | for sample in {aa,dd,cc}; do |
==注意== {}
内的代码是执行并行的部分,外面也可以有其他不用并行的语句
6. awk 单引号内引用外置变量
只能单引号内套双引号带正常的变量名引用。
1 | message="hello world" |
7. Linux 下的计划任务执行
通过
at
、crontab
等命令可以实现在规定时间、规定周期内执行一定的指定任务…
1 | crontab -e ## 进入编辑模式 |
1 | # 寻找满足条件的 bcl 路径 |