追加読書

追加読書

私は以下を使用する小さなBashスクリプトを書いた。spfquery自分のドメインの電子メールSPFレコードを確認するには(すべてのプロバイダのIPアドレスを通過する場合):

#!/bin/bash

# RED="\033[1;31m"
GREEN="\033[1;32m"
NOCOLOR="\033[0m"

email="[my email address]" # deleted for bots not to hound me

declare -a ips=("88.86.120.212" "88.86.120.223" "88.86.120.250" "88.86.120.213" "88.86.120.103" "46.234.104.23" "46.234.104.24")

echo -e "\n\n"

for ip in "${ips[@]}"
do
    echo -e "${GREEN}$ip${NOCOLOR}"
    spfquery -sender $email -ip $ip -helo kolbaba.stable.cz
    echo -e "\n\n"
done

REDコメントが付いていますので参考にしてください。その理由は、生成されたメッセージが次のいずれかで始まりたいからです。

  • fail
  • softfail
  • neutral
  • unknown
  • error
  • none

つまり、次のような場合ではありません。

  • pass

赤色に着色されています。

しかし、これをどうするかは私にとって謎ですか?

ベストアンサー1

zsh代わりに使用してくださいbash

#! /bin/zsh -

email="[email protected]"

ips=(88.86.120.{212,223,250,213,103} 46.234.104.{23,24})

print '\n\n'

for ip ($ips) {
  spfquery -sender $email -ip $ip -helo kolbaba.stable.cz &&
    color=green || color=red

  print -P "%F{$color}$ip%f\n"
}

print -P開いている急速な拡張パラメータ%F{color}設定展望色を指定して%fリセットしてください。

変数の内容(および)にもヒント拡張が適用され($color文字を含めることができる場合はそれを念頭に置いてください(オプションが有効な場合はそれ以上)$ip)、エスケープシーケンス拡張は適用されません(複数のAtなど)。%promptsubst-r\n

色にアクセスする他の方法zsh

  • 自動ローディングcolors機能:

    autoload colors; colors
    echo $fg[green]text$reset_color
    
  • パラメータ拡張フラグは、%変数の内容をすばやく拡張できます。

    var='%F{green}' reset=%f
    echo ${(%)var}text${(%)reset}
    

    また見なさい:

    echo ${(%):-%F{green}}text${(%):-%f}
    

    またはより良い

    printf '%s\n' "${(%):-%F{green}}$text${(%):-%f}"
    

    保証されたコンテンツをそのまま出力します$text

  • このzsh/cursesモジュールは、端末で擬似グラフィックアプリケーションを作成するために使用されます。

おすすめ記事