printf 動的書式設定の末尾の空白の設定

printf 動的書式設定の末尾の空白の設定

printfの '%-6s'形式を動的にする標準的な方法はありますか?

function justify
{
echo "$(printf '%-6s' $1)"
}

型に変数を挿入しようとしましたが、エラー処理形式間違い。

$(printf '%-${2}s' ${1})

ベストアンサー1

コマンドの置き換えを に渡して意図が何であるかを完全にはわかりませんが、echoこれによりトリックを実行できます。

justify() {
    printf "%-${2}s\n" "$1"
}

$1引用符なしで複数のパラメータを渡すには、を使用することをお勧めします"$@"

既存の試みについて参考にするいくつかの点は次のとおりです。

  1. 変数は一重引用符で拡張されず、二重引用符を使用してください。
  2. コマンド置換を使用する必要はなく、コマンドを直接呼び出すだけです。
  3. (オプション) functionPOSIX ではないので避けてください。

おすすめ記事