Linux—shell脚本化工具模板

作者: Hughman | 来源:发表于2020-03-20 09:03 被阅读0次

shell脚本介绍

  在研发过程中,不断的有项目或者产品升级,在此过程中,我们可以充分利用shell脚本去实现一些固定步骤的一键部署和升级。

配置文件

  在编写脚本前,我们可以编写一个额外的配置文件作为一键部署的入参文件,脚本可以读取到该配置文件中的变量值。届时,只需要修改配置文件内的配置,而无需更改脚本。
如:test.properties

[root@linux01 ~/test_sh]#  vim test.properties
# set parameters start

# int type
id_test=12

# string type 
str_test="test properties"

# array with white space type
array_test=(arr1 arr2 arr3)

[root@linux01 ~/test_sh]#  ll
-rw-r----- 1 root root 159 Mar 16 21:43 test.properties

shell实战

[root@linux01 ~/test_sh]#  vim test.sh
#!/bin/bash

# print start time
starttime=$(date +%Y-%m-%d\ %H:%M:%S)

# echo to log
echo "【Start to execute the script】, start time is: " $starttime   >> test_sh.log

# read properties from other file
source ./test.properties
echo "Parameters: cat test.properties" >> test_sh.log

while read line
do
 echo $line >> test_sh.log;
done < test.properties

echo "------ test.properties end------" >> test_sh.log
# ==============================================================

# create dir 
mkdir ${str_test}${id_test}
echo -e "\nmkdir dir success, and name is: "${str_test}${id_test} >> test_sh.log

# product file
for ((i=0; i<${#array_test[@]}; i++))
do
echo "now array_test i is "${#array_test[@]} >> test_sh.log
echo "This is ${array_test[i]} file " >> ${array_test[i]}_file.txt
done

# print end time
endtime=`date +"%Y-%m-%d %H:%M:%S"`
[root@linux01 ~/test_sh]#  ll
-rw-r----- 1 root root 159 Mar 16 21:43 test.properties
-rwxr-x--- 1 root root 993 Mar 16 21:45 test.sh

执行shell

注意为了简化,我们将test.propertiestest.sh放到一个目录下,以便于读取配置。

[root@linux01 ~/test_sh]#  sh test.sh
[root@linux01 ~/test_sh]#  ll
total 28
-rw-r----- 1 root root   19 Mar 16 22:11 arr1_file.txt
-rw-r----- 1 root root   19 Mar 16 22:11 arr2_file.txt
-rw-r----- 1 root root   19 Mar 16 22:11 arr3_file.txt
-rw-r----- 1 root root  159 Mar 16 22:08 test.properties
drwxr-x--- 2 root root 4096 Mar 16 22:11 test_properties12
-rwxr-x--- 1 root root  969 Mar 16 22:11 test.sh
-rw-r----- 1 root root  469 Mar 16 22:11 test_sh.log

查看日志

[root@linux01 ~/test_sh]#  vim test_sh.log
【Start to execute the script】, start time is:  2020-03-16 21:57:47
Parameters: cat test.properties
# set parameters start

# int type
id_test=12

# string type
str_test="test properties"

# array with white space type
array_test=(arr1 arr2 arr3)

------ test.properties end------
          
mkdir dir success, and name is: test_properties_12
now array_test i is 3
now array_test i is 3
now array_test i is 3
【Execute the script end】, end time is:  2020-03-16 21:57:47

查看生成的文件

[root@linux01 ~/test_sh]#  vim arr1_file.txt
This is arr1 file

[root@linux01 ~/test_sh]#  vim arr2_file.txt
This is arr2 file

[root@linux01 ~/test_sh]#  vim arr3_file.txt
This is arr3 file

相关文章

  • Linux—shell脚本化工具模板

    shell脚本介绍   在研发过程中,不断的有项目或者产品升级,在此过程中,我们可以充分利用shell脚本去实现一...

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • linux shell脚本攻略笔记

    LINUX SHELL脚本攻略笔记[速查] linux shell脚本攻略笔记

  • 基于LabVIEW的可视化日志检索工具

    根据文章-Linux Trace机日志可视化查找工具的构想后,笔者完成了根据时间点定位日志文件的shell脚本...

  • Shell基础知识

    简介 Shell是Linux内核系统下的脚本工具,由于是开源系统,Shell工具被开发出不同的版本。 /etc/s...

  • Linux基础服务巡检脚本模板

    Linux基础服务巡检脚本模板 收集的一个没有自动化巡检工具的时候,的每日巡检工具, 测试了支持Redhat, U...

  • PySparkSQL脚本模板

    PySpark模板分为shell脚本和python脚本两部分,通过shell脚本提交spark任务。 shell脚...

  • Linux编程-Lunix命令行

    Linux组成 Linux内核GNU工具组件图形化桌面环境应用软件 二、shell命令 常用的shell命令 a)...

  • 17. Interview-Linux

    1 用过哪些Linux命令? 2 写过shell脚本吗?shell脚本基本格式? 3 Linux I/O读写方式 ...

  • 指令随笔

    linux 修改shell脚本的编码 在window下编写的shell脚本编码为dos,在linux环境下不能直接...

网友评论

    本文标题:Linux—shell脚本化工具模板

    本文链接:https://www.haomeiwen.com/subject/bxudyhtx.html