SheLL#システム機能とエコーカラー

シェルプログラミング呼び出しシステム関数ライブラリと呼び出しカラー関数ライブラリ

独自のシェルスクリプトでシステム独自の関数ライブラリを呼び出す

考え方:

1. [[]]、&&、||記号を使用して、if条件の判断を置き換えます。これは、ifの判断が大規模なifで必要な状況に適してい
ます。2。エコー出力カラースクリプトは位置変数を使用します。

使いやすく、コマンドラインの紹介

/etc/init.d/functinsファイルは、システムに付属の関数ライブラリです。シェルスクリプトを作成すると、ソース/etc/init.d/functionsから4つのエコー関連コマンドを取得できます。これらのコマンドを使用すると、独自のコマンドを作成できます。スクリプトの出力はシステムの出力と同じです。最初にコマンドラインでデモンストレーションします。ソースの後にechoと入力してタブを完成させます。失敗が成功の警告に合格した場合、4つのケースでシステム出力形式のコマンドを取得することがわかります。

[root@sun init.d]# source functions 
[root@sun init.d]# echo
echo   echo_failure  echo_passed   echo_success  echo_warning  
学会简单的用法,直接这样写
[root@sun init.d]# failure && echo "失败情况的系统输出"
失败情况的系统输出                                         [失败]
[root@sun init.d]# passed && echo "失败情况的系统输出"
失败情况的系统输出                                         [通过]
[root@sun init.d]# warning && echo "警告情况的系统输出"
警告情况的系统输出                                         [警告]
[root@sun init.d]# success && echo "成功情况的系统输出"
成功情况的系统输出                                         [  确定  ]

実行されるカラーエフェクトは次のとおりです
ここに写真の説明を挿入

使いやすいシェルスクリプトの例

#!/bin/bash
# Author:kakaops
# Email:[email protected]

# 示例success和failure在启动和停止服务中的应用
# 以nginx为例子,nginx的官方启动命令为nginx,官方停止命令为nginx -s stop

# 示例如何用&&和||替换需要多行的if判断

source /etc/init.d/functions
###################
# start函数
###################
start_nginx(){
    
    
    [[ $(netstat -auntpl |grep nginx|wc -l) > 0 ]] && failure && echo "Nginx is already running" && exit
    nginx
    ([ $? -eq 0 ] && success && echo "Nginx start sucessfully!") ||( failure && echo "Failed start nginx" ) 
}

###################
# stop函数
###################
stop_nginx(){
    
    
    [[ $(ss -auntpl |grep nginx |wc -l) == 0 ]] && failure && echo "Nginx is not running" && exit
    nginx -s stop
    ([ $? -eq 0 ] && success && echo "Nginx stop sucessfully!") || ( failure && echo "Failed stop nginx" )
}

case $1 in
    start)
        start_nginx
        ;;
    stop)
        stop_nginx
        ;;
    *)
        exit
        ;;
esac

自家製エコーcolor.sh

Echoは現在の端末の色を変更します(\ eは\ 033にすることもできます)
echo -e color(-eはアクティベーションエスケープ文字です)
[root @ sun〜] #echo -e "\ e [1; 31mこれは赤いテキストです\ e [0m "
echoコマンドを使用して色付きのテキストを印刷します:
text color:
echo -e" \ e [1; 31mこれは赤いテキストです\ e [0m "
\ e [1; 31m色を赤に設定します
\ e [0m will色がリセットされ
ます。セミコロンの周りのテキストアクションのカラーコードには、フォント自体の色とテキストの背景色は必要ありません。引用符は複数の形式で使用できます。

フォントの前景色:
カラーコード:reset = 0、black = 30、red = 31、green = 32、yellow = 33、blue = 34、magenta = 35、cyan = 36、white = 37
テキストの背景色:
echo- e "\ e [1; 42mGreed Background \ e [0m"
カラーコード:reset = 0、black = 40、red = 41、green = 42、yellow = 43、blue = 44、magenta = 45、cyan = 46 、White = 47
テキストアクション:
echo -e "\ e [37; 31; 5mMySQL Server Stop ... \ e [0m"
アクションコード:0すべての属性を閉じる、1高輝度(太字)を設定、3傾斜、4下線、 5回の点滅、7回の反転表示、8回のブランキング

python print()の出力色はechoと同じです:-eは\ 033に置き換えられます
ここに写真の説明を挿入

color.shの使用法

このスクリプトでは、強調表示する色を設定し、必要に応じて他のパラメーターを自分で追加します。重要なことは、考え方を変えることです。

# 处理单行命令的颜色输出
function black(){
    
    
    echo -e "\e[1;30m$1\e[0m"
}
function red(){
    
    
    echo -e "\e[1;31m$1\e[0m"
}
function green(){
    
    
    echo -e "\e[1;32m$1\e[0m"
}
function yellow(){
    
    
    echo -e "\e[1;33m$1\e[0m"
}
function blue(){
    
    
    echo -e "\e[1;34m$1\e[0m"
}
function carmine(){
    
    
    echo -e "\e[1;35m$1\e[0m"
}
function cyan(){
    
    
    echo -e "\e[1;36m$1\e[0m"
}
function white(){
    
    
    echo -e "\e[1;37m$1\e[0m"
}

最初に現在のシェルで実行して効果を確認してから、改善を加えます
ここに写真の説明を挿入

ファイルをカラーで印刷できます

ここに写真の説明を挿入
コマンドの出力をカラープリントする
ここに写真の説明を挿入

上記の検証では、color.shスクリプトは機能しますが、スクリプトは非常に単純ですが、非常に長いです。改善してください。

color.shは、スクリプトを簡略化するために連想配列を定義します

function color(){
    
    
declare -A color_info
color_info=([black]=30 [red]=31 [green]=32 [yellow]=33 [blue]=34 [carmine]=35 [cyan]=36 [white]=37)
echo -e "\e[1;${color_info[$1]}m$2\e[0m"
}

呼び出しと上記の間に少し違いがあります。2つの位置パラメータ$ 1、$ 2
コマンドラインテストに合格する必要があります

ここに写真の説明を挿入

出力ファイルテスト
ここに写真の説明を挿入

コマンド出力テスト
ここに写真の説明を挿入

使いやすいスクリプト例

かわいい小さな牛のカウセイや
他の動物のカタログと協力する
/ usr / share / cowsay
cowsay -f kiss "浮気の父"
-f他の動物のカウセイを指定する
" (colorred"(color red "c o l o r r e d "(ip a)") "
cowsay -f kiss(colorred"(color red "c o l o r r e d "(ip a)")

#!/bin/bash
# Author:kakaops
# Email:[email protected]

# 示例success和failure在启动和停止服务中的应用
# 以nginx为例子,nginx的官方启动命令为nginx,官方停止命令为nginx -s stop

# 示例如何用&&和||替换需要多行的if判断

source /etc/init.d/functions
source ./color.sh

# 如果没有奶牛,就安装一下
#yum -y install cowsay

###################
# start函数
###################
start_nginx(){
    
    
    [[ $(netstat -auntpl |grep nginx|wc -l) > 0 ]] && cowsay $(color red "Nginx is already running") && exit
    nginx
    ([ $? -eq 0 ] && cowsay -f turtle $(color green "Nginx start sucessfully!")) ||( cowsay $(color red "Failed start nginx" )) 
}

###################
# stop函数
###################
stop_nginx(){
    
    
    [[ $(ss -auntpl |grep nginx |wc -l) == 0 ]] && cowsay -f tux $(color red "Nginx is not running") && exit
    nginx -s stop
    ([ $? -eq 0 ] && cowsay -f kitty $(color green "Nginx stop sucessfully!")) || (cowsay $(color red "Failed stop nginx" ))
}
case $1 in
    start)
        start_nginx
        ;;
    stop)
        stop_nginx
        ;;
    *)
        exit
        ;;
esac

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

テキストの前景色、テキストの背景色、テキストアクション

複数の連想配列テキストの前景色、背景色、およびアクションをすべて出力できます。4つの位置パラメーターが必要です。
$ 1はテキストの前景色を指定します
$ 2はテキストの背景色を
指定します。$ 3はテキストアクションを指定します。
$ 4は出力コンテンツを指定します。

#!/bin/bash
# Author:kakaops
# Email:[email protected]

function color-plus(){
    
    
declare -A color_info
color_info=([black]=30 [red]=31 [green]=32 [yellow]=33 [blue]=34 [carmine]=35 [cyan]=36 [white]=37)
declare -A color_info_back
color_info_back=([black]=40 [red]=41 [green]=42 [yellow]=43 [blue]=44 [carmine]=45 [cyan]=46 [white]=47)
declare -A action_info
action_info=([bold]=1 [tilt]=3 [underline]=4 [twinkle]=5 [invert]=7 [blank]=8)

echo -e "\e[${color_info[$1]};${color_info_back[$2]};${action_info[$3]}m$4\e[0m"
}

#加粗:bold
#倾斜:tilt
#下划线:underline
#闪烁:twinkle
#反显:invert
#消隐:blank

ここに写真の説明を挿入
ここに写真の説明を挿入
ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/kakaops_qing/article/details/108987405