printfの '%-6s'形式を動的にする標準的な方法はありますか?
function justify
{
echo "$(printf '%-6s' $1)"
}
型に変数を挿入しようとしましたが、エラー処理形式間違い。
$(printf '%-${2}s' ${1})
ベストアンサー1
コマンドの置き換えを に渡して意図が何であるかを完全にはわかりませんが、echo
これによりトリックを実行できます。
justify() {
printf "%-${2}s\n" "$1"
}
$1
引用符なしで複数のパラメータを渡すには、を使用することをお勧めします"$@"
。
既存の試みについて参考にするいくつかの点は次のとおりです。
- 変数は一重引用符で拡張されず、二重引用符を使用してください。
- コマンド置換を使用する必要はなく、コマンドを直接呼び出すだけです。
- (オプション)
function
POSIX ではないので避けてください。