例えば、以下のようにする。echo_count という関数を定義して、スクリプト内からその文字列をカウントしてコール数を合計する(合計値は ${TOTAL} という変数で参照できる)。
#!/bin/bash
export TOTAL=$(( $(grep '^echo_count' $0 | wc -l) ))
export COUNT=1
function echo_count () {
echo -n "($(( COUNT++ ))/${TOTAL}) $1"
}
echo
echo_count 'Processing one - Stopping Apache2... '
sudo service apache2 stop
echo 'Done'
echo_count 'Processing two - '
echo 'Apache2 is not working.'
echo_count 'Processing three - Starting Apache2... '
sudo service apache2 start
echo 'Done'
echo_count 'Processing four - '
echo 'Apache2 is running.'
echo
echo 'Done.'
echo
実行結果
(1/4) Processing one - Stopping Apache2... Done
(2/4) Processing two - Apache2 is not working.
(3/4) Processing three - Starting Apache2... Done
(4/4) Processing four - Apache2 is running.
Done.