从Shell脚本中学到的知识
2019/10/10/17:48:15 阅读:1954 来源:谷歌SEO算法 标签:
AI科学家
作者Fizer Khan是一位Shell脚本迷,他对有关Shell脚本新奇有趣的东西是如此的痴迷,最近他遇到了authy-ssh脚本,为了缓解ssh服务器双重认证问题,他学到了许多有用且很酷的东西,对此,他想分享给大家。
1.为输出着色
大多数情况下,你希望输出带颜色的结果,比如绿色代表成功,红色代表失败,黄色代表警告,Shell代码:
- NORMAL=$(tputsgr0)
- GREEN=$(tputsetaf2;tputbold)
- YELLOW=$(tputsetaf3)
- RED=$(tputsetaf1)
- functionred(){
- echo-e"$RED$*$NORMAL"
- }
- functiongreen(){
- echo-e"$GREEN$*$NORMAL"
- }
- functionyellow(){
- echo-e"$YELLOW$*$NORMAL"
- }
- #Toprintsuccess
- green"Taskhasbeencompleted"
- #Toprinterror
- red"Theconfigurationfiledoesnotexist"
- #Toprintwarning
- yellow"Youhavetousehigherversion."
这里使用tput来设置颜色、文本设置并重置到正常颜色,想更多了解tput,请参阅prompt-color-using-tput。
2.输出调试信息
输出调试信息只需调试设置flag。
Shell代码
- functiondebug(){
- if[[$DEBUG]]
- then
- echo">>>$*"
- fi
- }
- #Foranydebugmessage
- debug"Tryingtofindconfigfile"
某些极客还会提供在线调试功能:
Shell代码
- #Fromcoolgeeksathackernews
- functiondebug(){((DEBUG))&&echo">>>$*";}
- functiondebug(){["$DEBUG"]&&echo">>>$*";}
3.检查特定可执行的文件是否存在?
Shell代码
- OK=0
- FAIL=1
- functionrequire_curl(){
- whichcurl&>/dev/null
- if[$?-eq0]
- then
- return$OK
- fi
- return$FAIL
- }
这里使用which来命令查找可执行的curl 路径,如果成功,那么可执行的文件存在,反之则不存在。将&>/dev/null设置在输出流中,错误流会显示to /dev/null(这就意味着在控制板上没有任何东西可打印),有些极客会建议直接通过返回which来返回代码.
热门评论