0

一連のコマンドを自動化するスクリプトを作成しています。出力を右揃えで色付きにしたいと考えています。これまでのところ、どちらか一方を取得することはできますが、両方を達成することはできませんでした. 私の(テスト)スクリプトは次のとおりです。

#!/bin/bash

columns=$(tput cols)
txtgrn=$(tput setaf 2) # Green
txtpur=$(tput setaf 5) # Purple
txtrst=$(tput sgr0) # Text reset.

col1="60"
let "col2 = $columns - $col1"


# Colored text, left-aligned
string1="${txtpur}Running update 1${txtrst}"
string2="${txtgrn}(1 of 10)${txtrst}"
printf "%-*s%*s\n" "$col1" "$string1" "$col2" "$string2"

string1="${txtpur}Running update 10${txtrst}"
string2="${txtgrn}(10 of 10)${txtrst}"
printf "%-*s%*s\n" "$col1" "$string1" "$col2" "$string2"


# Non-colored text, right-aligned
string1="Running update 1"
string2="(1 of 10)"
printf "%-*s%*s\n" "$col1" "$string1" "$col2" "$string2"

string1="Running update 10"
string2="(10 of 10)"
printf "%-*s%*s\n" "$col1" "$string1" "$col2" "$string2"

exit 0

標準の Mac ターミナル プログラムで Mac OS 10.7.5 を使用しています。

4

1 に答える 1

1
string1="Running update 1"
string2="(1 of 10)"
printf "${txtpur}%-*s${txtgrn}%*s${txtrst}\n" "$col1" "$string1" "$col2" "$string2"

string1="Running update 10"
string2="(10 of 10)"
printf "${txtpur}%-*s${txtgrn}%*s${txtrst}\n" "$col1" "$string1" "$col2" "$string2"
于 2013-02-08T23:46:00.737 に答える