当前位置: 首页 > 科技观察

在Linux中高效编写Bash脚本的10个技巧_0

时间:2023-03-20 01:36:37 科技观察

Shell脚本是您在Linux下学习或练习编程的最简单方法。特别是对于需要处理自动化任务、开发新的简单实用程序或工具等(这里仅举几个例子)的系统管理员来说,更是一项必备技能。在本文中,我们将分享编写高效可靠的bash脚本的10个实用技巧,包括:1.在脚本中多写注释。这不仅适用于shell脚本,也是所有其他类型编程的一种推荐做法。在您的脚本中添加注释可以帮助您或其他人查看您的脚本以了解脚本不同部分的作用。对于初学者,注释是用#符号定义的。#TecMint是浏览各种Linux文章的最佳站点2.运行失败时让脚本退出有时即使某些命令运行失败,bash也可能继续执行脚本,这会影响脚本的其余部分(将最终导致逻辑错误)。当命令失败时使用下面一行来退出脚本执行:#如果命令运行失败,让脚本退出并执行set-oerrexit#或set-e3,当Bash使用未声明的变量使脚本退出时Bash也可能使用可能导致逻辑错误的未声明变量。所以使用下面这行来通知bash在尝试使用未声明的变量时退出脚本执行:#Ifthereareunsetvariables,letthescriptexitandexecuteset-onounset#orset-u4,usedoublequotestoquoteVariables当引用(使用变量的值)时,双引号有助于防止由于空格导致的单词拆分以及由于识别和扩展通配符而导致的不必要匹配。看下面的例子:#!/bin/bash#如果命令失败则退出脚本set-oerrexit#如果使用未设置的变量则退出脚本"$name"doneechoecho"Nameswithdoublequotes"echofornamein"$names";doecho"$name"doneexit0保存文件退出,然后运行如下:$./names.sh在脚本中使用双引号5.使用函数中的script除了非常小的脚本(只有几行代码),永远记得使用函数将代码模块化,让脚本更易读和可重用。写函数的语法如下:functioncheck_root(){command1;command2;}#orcheck_root(){command1;command2;}当写成单行代码时,每条命令后必须使用终止符号:check_root(){命令1;命令2;}6.比较字符串时,使用=代替==注意==是=的同义词,所以只有一个=用于字符串比较,例如:value1=”tecmint.com”value2=”fossmint.com”if["$value1"="$value2"]7.使用$(command)代替旧命令进行替换命令替换就是用这个命令的输出来替换命令本身。使用$(command)而不是引号命令进行命令替换。shellcheck工具(显示shell脚本的警告和建议)也推荐这种做法。例如:user=`echo"$UID"`user=$(echo"$UID")8.使用readonly声明静态变量静态变量不会改变;它们的值一旦在脚本中定义,就不能修改:readonlypasswd_file="/etc/passwd"readonlygroup_file="/etc/group"9.环境变量以大写字母命名,而自定义变量以小写字母命名全部bash环境变量以大写字母命名,因此请使用小写字母命名您的自定义变量变量以避免变量名称冲突:#Define自定义变量为小写,环境变量为大写nikto_file="$HOME/Downloads/nikto-master/program/nikto.pl"perl"$nikto_file"-h"$1"10、总是调试长脚本如果你正在编写具有数千行代码的bash脚本,调试可能会变成一场噩梦。为了在脚本执行之前轻松纠正一些错误,需要进行一些调试。通过阅读以下指南掌握此技术:如何在Linux中启用Shell脚本调试模式(https://linux.cn/article-8028-1.html)如何在Shell脚本中执行语法检查调试模式(https://linux.cn/article-8028-1.html)://linux.cn/article-8045-1.html)如何跟踪Shell脚本中调试命令的执行情况(https://linux.cn/article-8120-1.html)