从Shell脚本中学到的知识

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

作者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." 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.

这里使用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" 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

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

Shell代码

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

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

Shell代码

OK=0 
FAIL=1 
function require_curl() { 
which curl &>/dev/null 
if [ $? -eq 0 ] 
then 
return $OK 
fi 
return $FAIL 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

这里使用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

2015-05-06 14:36:56

CIO云计算风险云迁移

2010-10-12 11:06:07

招聘

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技术栈公众号