从Shell脚本中学到的知识

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

作者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. function green() { 
  8. echo -e "$GREEN$*$NORMAL" 
  9. function yellow() { 
  10. echo -e "$YELLOW$*$NORMAL" 
  11. # To print success 
  12. green "Task has been completed" 
  13. # To print error 
  14. red "The configuration file does not exist" 
  15. # To print warning 
  16. 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. # For any debug message 
  7. 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来返回代码。

责任编辑:黄丹 来源: iteye.com
相关推荐

2021-07-26 07:47:36

C# 工作面试

2021-03-09 09:55:02

Vuejs前端代码

2020-05-19 13:46:33

勒索软件信息安全攻击

2021-10-11 09:55:58

Facebook业务中断网络安全

2018-08-14 05:34:19

2010-10-12 11:06:07

招聘

2015-05-06 14:36:56

CIO云计算风险云迁移

2023-11-29 07:29:28

ReactSolid

2023-11-24 13:24:14

CIOOptus

2020-12-31 10:47:03

开发Vuejs技术

2016-01-18 10:06:05

编程

2020-01-08 14:32:06

物联网黑客网络安全

2015-09-24 09:41:04

Amazon云停机云安全教训

2024-04-07 14:11:42

ITGenAI

2020-11-03 09:50:26

CIO远程IT在家工作

2022-03-21 10:21:50

jQuery代码模式

2014-12-22 10:09:50

工程师

2020-07-07 10:38:11

首席信息官IT领导者经验教训

2020-07-07 10:40:45

CIO首席信息官IT

2022-12-12 11:08:07

数字化转型企业
点赞
收藏

51CTO技术栈公众号