从Shell脚本中学到的知识

昝辉Zac Zac的SEO博客,坚持12年,优化成为生活。

作者Fizer Khan是一位Shell脚本迷,他对有关Shell脚本新奇有趣的东西是如此的痴迷,最近他遇到了authy-ssh脚本,为了缓解ssh服务器双重认证问题,他学到了许多有用且很酷的东西,对此,他想分享给大家。

1.为输出着色

大多数情况下,你希望输出带颜色的结果,比如绿色代表成功,红色代表失败,黄色代表警告,Shell代码:

  1. NORMAL=$(tputsgr0)
  2. GREEN=$(tputsetaf2;tputbold)
  3. YELLOW=$(tputsetaf3)
  4. RED=$(tputsetaf1)
  5. functionred(){
  6. echo-e"$RED$*$NORMAL"
  7. }
  8. functiongreen(){
  9. echo-e"$GREEN$*$NORMAL"
  10. }
  11. functionyellow(){
  12. echo-e"$YELLOW$*$NORMAL"
  13. }
  14. #Toprintsuccess
  15. green"Taskhasbeencompleted"
  16. #Toprinterror
  17. red"Theconfigurationfiledoesnotexist"
  18. #Toprintwarning
  19. yellow"Youhavetousehigherversion."

这里使用tput来设置颜色、文本设置并重置到正常颜色,想更多了解tput,请参阅prompt-color-using-tput。

2.输出调试信息

输出调试信息只需调试设置flag。

Shell代码

  1. functiondebug(){
  2. if[[$DEBUG]]
  3. then
  4. echo">>>$*"
  5. fi
  6. }
  7. #Foranydebugmessage
  8. debug"Tryingtofindconfigfile"

某些极客还会提供在线调试功能:

Shell代码

  1. #Fromcoolgeeksathackernews
  2. functiondebug(){((DEBUG))&&echo">>>$*";}
  3. functiondebug(){["$DEBUG"]&&echo">>>$*";}

3.检查特定可执行的文件是否存在?

Shell代码

  1. OK=0
  2. FAIL=1
  3. functionrequire_curl(){
  4. whichcurl&>/dev/null
  5. if[$?-eq0]
  6. then
  7. return$OK
  8. fi
  9. return$FAIL
  10. }

这里使用which来命令查找可执行的curl 路径,如果成功,那么可执行的文件存在,反之则不存在。将&>/dev/null设置在输出流中,错误流会显示to /dev/null(这就意味着在控制板上没有任何东西可打印),有些极客会建议直接通过返回which来返回代码.

相关广告
  • 从Shell脚本中学到的知识 从Shell脚本中学到的知识 从Shell脚本中学到的知识
相关阅读

从Shell脚本中学到的知识

2019/10/10 17:48:15 | 谷歌SEO算法 | AI科学家