非環境変数を宣言した後に直接印刷

非環境変数を宣言した後に直接印刷

いくつか宣言したいです。非環境変数その後、直接印刷してください。

たとえば、

read domain &&
web_application_root="${HOME}/www" &&
domain_dir="${web_application_root}/${domain}/public_html" &&

&&最後の3つの変数宣言の出力を印刷するには、3番目のコマンドの後にどのコマンドを使用する必要がありますか?

印刷物の目的は、読みやすいように、3つのコマンドの出力を1つの場所に順番に、おそらくテーブルと同じようにきれいに表示することです(set -x追跡よりはるかに快適です)。

答え1

これを行う関数を定義できます。ここではbash機能を使用しています。別のシェルを使用している場合は、それを調整する必要があります。

printVariables() {
    local maxLen=0

    # Figure out the length of the longest variable name
    for i; do
        if ((${#i} > maxLen)); then
            maxLen=${#i}
        fi
    done

    # Make room for the colon
    maxLen=$((maxLen + 1))

    # Print the named variables
    for i; do
        printf "%-${maxLen}s %s\n" "${i}:" "${!i}"
    done
}

それから:

$ read domain &&
web_application_root="${HOME}/www" &&
domain_dir="${web_application_root}/${domain}/public_html" &&
printVariables domain web_application_root domain_dir
example.com

次の出力が生成されます。

domain:               example.com
web_application_root: /home/user/www
domain_dir:           /home/user/www/example.com/public_html

関連情報