「shell脚本入门到精通」基本规范及良好的编写习惯

作者:老油条IT记
公众号:老油条IT记

#前言:
良好的书写规范和书写习惯,会让我们减少很多不必要的麻烦,可以提高我们的效率

1.基本的规范

#1.1.开头指定脚本解释器
#!/bin/bash 或 #!/bin/sh

#1.2.开头加版本版权等信息
#Date: 20:20 202-3-5
#Author:create by oldIT
#Mail: 123321@qq.com
#Function: This scripts function…
#Version:2.1
#时间、作者、邮件、功能、版本

#1.3.脚本中不用中文注释
尽量用英文注释,防止出现乱码

#1.4.脚本以.sh为扩展名
例如:webstart.sh

#1.5.脚本应该存放在固定的路径下
如:/data/scripts/

#创建shell脚本程序的步骤
#第一步:创建一个包含命令和控制结构的shell文件,以.sh为扩展名

#第二步:修改这个文件权限使它可以执行
修改方式:chmod u+x 文件名

#第三步:执行
方法1:./example
方法2:bash + 文件
方法3:source + 文件

2.良好的书写习惯

#2.1.成对的符号应尽量一次性写出,然后退格在符号里增加内容,防止遗漏
如:{} [] ‘’ “”

#2.2.中括号[]两端至少要有1个空格,输入技巧:先输入一对中括号,然后退一个格,输入两个空格,再退一格,双中括号[[]]也是这样写:
[ name ]
[[ name ]]

#2.3.对于流程控制语句应该一次性将格式写完,再添加内容
#比如1:写if语句

if 条件内容
    then
        内容
fi

#比如2:for循环语句

for 
    do
       内容
done
#提示:while,case和until等语句也是一样

#2.4.通过缩进让代码更易读(tab键)

if 条件内容
    then
        内容
fi

#2.5.字符串赋值给变量应加双引号,并且等号前后不能有空格
如:my_file=“test.txt”

#2.6.脚本中的单引号、双引号及反引号,必须为英文状态下的符号
‘’,‘’
“”,“”
``,··
#提示:前面为英文输入法状态下的符号,后者为中文状态下的符号

3.shell脚本变量命名及引用变量规范

#3.1.全局变量命名
概述:全局变量也称环境变量,定义变量应该全部大写,如APACHE_ARE或APACHEARE,名字对应的内容要尽量明白,多个单词之间可以使用"_"号连接,全局变量的定义一般放在系统的全局路径中,采用export来定义
#示例
[root@game ~]# tail -1 /etc/profile
export NGINX_ERR=“Hello Word”
[root@game ~]# source /etc/profile
[root@game ~]# echo $NGINX_ERR
Hello Word

#3.2.局部变量命名
概述:局部变量也称普通变量,在常规的脚本中,普通变量的命令尽量也进行统一,可以使用驼峰语法,就是第二个单词的首字母大写,如guoKe,或者每个单词首字母大写,或全部大写或全部小写的方式,选择自己适合的。

#3.3.local方式定义
概述:在shell函数中的变量可以使用local方式进行定义,使其只在本函数作用域内生效,防止函数中的变量名与外部程序中的变量相同,从而造成程序异常
#示例

[root@game ~]# cat 1.sh 
#!/bin/bash
n=5
IT(){
    local a
    for ((a=0;a<n;a++))
    do
        echo 'guoke'
    done
}
IT

#3.4.变量的引用规范
概述:在引用变量的时候,如果变量前后都有字符,则需要使用 D I R , 加 大 括 号 的 方 式 引 用 变 量 , 防 止 出 现 问 题 。 当 变 量 内 容 为 字 符 串 时 , 需 要 使 用 " {DIR},加大括号的方式引用变量,防止出现问题。当变量内容为字符串时,需要使用" DIR,使"{DIR}",外面加引号的方式引用变量。当变量为整数时,可以直接使用$DIR来引用变量,全局变量,局部变量,函数变量,数组变量都是这样。

说明:对于需要环境变量的java程序脚本等,在写脚本之前,最好通过export重新声明环境变量,以免在定时任务等场合中出现问题

4.shell函数的命名及函数定义规范

概述:shell函数的命名可以使用单词字母首写的形式,如CreateDir(),可以语义清晰,如可以使用CreateDir()替代CDir(),也可以小写形式createdir()。这有益对函数功能的理解,使函数更加直观清晰。

主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的表现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值