当前位置:首页 > linux教程 > 列表

从Shell脚本中学到的知识

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-07 15:28:34 浏览: 评论:0 

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

1.为输出着色

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

  1. NORMAL=$(tput sgr0)  
  2. GREEN=$(tput setaf 2; tput bold)  
  3. YELLOW=$(tput setaf 3)  
  4. RED=$(tput setaf 1)  
  5. function red() {  
  6. echo -e "$RED$*$NORMAL"  
  7. }  
  8. function green() {  
  9. echo -e "$GREEN$*$NORMAL"  
  10. }  
  11. function yellow() {  
  12. echo -e "$YELLOW$*$NORMAL"  
  13. }  
  14. # To print success  
  15. green "Task has been completed"  
  16. # To print error  
  17. red "The configuration file does not exist"  
  18. # To print warning  
  19. yellow "You have to use higher version."  

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

2.输出调试信息

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

Shell代码

  1. function debug() {  
  2. if [[ $DEBUG ]]  
  3. then  
  4. echo ">>> $*"  
  5. fi  
  6. }  
  7. # For any debug message  
  8. debug "Trying to find config file"  

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

Shell代码

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

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

Shell代码

  1. OK=0  
  2. FAIL=1  
  3. function require_curl() {  
  4. which curl &>/dev/null  
  5. if [ $? -eq 0 ]  
  6. then  
  7. return $OK  
  8. fi  
  9. return $FAIL  

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

Tags: Shell脚本 Shell知识

分享到: