タイトルとして、expectシェルでカラーテキストを使用する方法はありますか?以下のシェルスクリプトechoコマンドのように。
echo -e "\033[32m Hello World"
私はかなり前からこの質問に対する答えに苦しんでいましたが、今やっと答えが出たと思います。
仕組みは033
、<ESC>文字を[
送信してから、セミコロンで区切られたANSIエスケープコードを送信すること[
ですが、特殊文字と同様に、バックスラッシュでエスケープする必要があります。次に、ANSIシーケンスの送信に進み、。で区切りm
ます。
ANSIブレークシーケンスの例
0リセット/通常すべての属性をオフ
1太字または強度の増加
4下線:単一
30テキストの色を黒に設定
31テキストの色を赤に設定
32テキストの色を緑に設定
完全なリストはここにあります:http: //en.wikipedia.org/wiki/ANSI_escape_code
例:
puts "\033\[01;31m" # This will turn text red
puts "~~~This text is red and bold\n"
puts "\033\[0;32m" # This will turn text green
puts "This text is green and bold switched off\n"
ただし、このオプションでは機能しないようです-nonewline
。これは少し面倒です。ただし、send_userコマンドは、処理がはるかに優れており、制御下にあることがはるかに優れているようです。
send_user "\033\[01;31mRed bold \033\[0;32mGreen again"
これを変数と組み合わせて、出力を読みやすくすることもできます。
set green "\033\[0;32;40m"
set red "\033\[1;31m"
send_user "${red}Red bold ${green}Green again"