提交程序,甚至很少要求任务脚本几乎总是一个重大胜利,因为你不必每次改造的方法来完成工作需要,你节省大量的时间问题上经常处理。
这里有一些建议供编写bash脚本,并确保他们将易于使用,易于更新/和滥用。
评论
一个重要的事情当你准备脚本在Linux上添加评论——特别是对于命令可能有点复杂。如果你不经常运行一个脚本,注释可以帮助确保您快速掌握它做的一切。如果别人用你的脚本,在评论可以让它更容易让他们知道会发生什么。所以,总是添加评论。甚至你会欣赏他们的!你不需要注释的每一行,每一个重要的命令。这是一个简单的例子。
# !/bin/bash #功能空间在提供的文本替换为下划线replspaces () {echo $ @ | sed的s / / _ / g} #函数从提供的文本删除空间dropspaces () {echo $ @ | sed的/ / / g”;}#命令来调用上面的函数定义replspaces“Hello World”replspaces‘日期’dropspaces“Hello World”dropspaces“日期”
上面的脚本中定义了两个函数:一个空间变成下划线和一个完全消除空间的任何字符串在提示符中提供。评论说,足以解释这个。
使用函数
正如在上面的脚本中,函数可以派上用场。尤其如此,当一个脚本将运行的函数很多次。脚本将更短,更容易理解。
验证参数
让一个习惯让你的脚本验证适当的参数都是由谁提供运行它们。您可以检查参数的数量,但是你也可以验证反应是有效的。例如,如果您提示的名称文件,检查文件提供实际存在运行命令之前,尝试使用它。如果它不存在,应对一个错误并退出。
下面的脚本检查,以确保提供了两个参数作为参数的脚本。如果没有,提示输入所需的信息。
# !/bin/bash如果($ # lt 2);然后回声“用法:$ 0行文件名”退出文件名1其他numlines = 1美元= 2美元fi…
下面的脚本提示输入文件名,然后检查该文件是否存在。
# !/bin/bash #得到文件的名称echo - n“文件名>”读过$ filename #检查文件是否存在或退出如果[!- f $ filename);然后回声“没有这样的文件:$文件名”退出fi
如果需要,您还可以检查文件是否可写或读。下面的脚本的版本。
# !/bin/bash #得到文件的名称echo - n“文件名>”读过文件名#检查文件是否存在或退出如果[!- f $ filename);然后回声“没有这样的文件:$文件名”退出其他#如果[确定文件是否可读!- r $ filename);然后回声“文件名不是美元可写”退出fi
如果[#确定文件是可写的!- w美元文件名);然后回声“文件名不是美元可读”退出fi fi
注意:- r美元文件名检查文件是否可读的问道。的!- r美元文件名检查是否问道不可读。
退出上错误
你应该总是退出时脚本运行时遇到错误。解释错误消息出现了什么问题。的设置- o errexit将会导致一个脚本退出不管遇到什么样的错误。
# !/bin/bash设置- o errexit #退出任何错误的尾巴NoSuchFile #试图展示底线不存在文件中回声- n”输入文本附加>“txt echo $ txt > > NoSuchFile阅读
上面的脚本将退出“NoSuchFile”文件不存在。将显示一个错误。
退出,当一个变量没有赋值(即。,不存在),使用nounset选项如下所示的脚本。一个设置- u命令相同的工作。
# !/bin/bash #退出脚本如果使用一个设置变量设置- o nounset #欢迎用户提供问候echo $问候echo - n”输入文件的名称被评估:“读取文件名
如果你运行这个脚本,你会碰到如下问题,从不被提示要处理的文件:
ck_nounset美元
/ ck_nounset:第7行:问候:未绑定变量
处理报价
在很多情况下,没关系如果你使用单引号,双引号,或任何引号。将引号中的变量名如果语句意味着你不会遇到一个错误如果变量没有定义。shell将永远不会试图评估无效的命令如果(= 2)。命令如果(“= 2)是有效的。
如果(" $ var " = 2)
将引号与不止一个字符串参数是至关重要的。你会遇到问题与下面的脚本如果用户回答好的/坏的问题进入了“很好”而不是“好”或“坏”。
# !/bin/bash echo - n”你找到的参数是好是坏?>“阅读答如果($ ans =好);然后回声“感谢您的反馈”echo - n”没有你喜欢什么?>“读ans echo $ ans > > bad_feedback fi
相反,你可以使用这样的一条线来做比较。这将允许“好”或“很好”作为回应。
如果[[" $ ans " = *“好”]];然后
使用= = =
大部分时间你使用没有任何差异=或= =比较字符串。然而,一些贝壳(例如,破折号)不使用= =,所以节省按键和坚持=如果你不确定。
文件权限
确保你的脚本可以由任何应该能够使用他们的人。一个chmod ug + rx文件名命令会给你(大概文件所有者)和任何人在集团相关文件读取和运行脚本的能力。
测试脚本
别忘了花一些时间测试,以确保您的脚本做什么你意愿。测试可以包括未能应对脚本的提示是如何作出反应的。
总结
有更多的建议包括建立可靠和容易维护的脚本学习使用bash脚本在Linux上,许多方法可以循环使用bash,如何在bash永远循环。