好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

从Shell脚本中学到的知识 - linux教程

从Shell脚本中学到的知识

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

1.为输出着色

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

  • NORMAL=$(tput sgr0)  
  • GREEN=$(tput setaf 2; tput bold)  
  • YELLOW=$(tput setaf 3)  
  • RED=$(tput setaf 1)  
  • function  red() {  
  • echo -e "$RED$*$NORMAL"   
  • }  
  • function  green() {  
  • echo -e "$GREEN$*$NORMAL"   
  • }  
  • function  yellow() {  
  • echo -e "$YELLOW$*$NORMAL"   
  • }  
  • # To print success   
  • green "Task has been completed"   
  • # To print error   
  • red "The configuration file does not exist"   
  • # To print warning   
  • yellow "You have to use higher version."   

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

    2.输出调试信息

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

    Shell代码

  • function  debug() {  
  • if  [[ $DEBUG ]]  
  • then  
  • echo ">>> $*"   
  • fi  
  • }  
  • # For any debug message   
  • debug "Trying to find config file"   

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

    Shell代码

  • # From cool geeks at hacker news   
  • function  debug() { ((DEBUG)) && echo  ">>> $*" ; }  
  • function  debug() { [  "$DEBUG"  ] && echo  ">>> $*" ; }  

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

    Shell代码

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

    查看更多关于从Shell脚本中学到的知识 - linux教程的详细内容...

  •   阅读:76次