次のコマンドを実行しています。
some_command --flag "foo\
bar\
quux" arg2
これにより文字列がに渡されますfoo\tbar\tquux
。
タブを使用せずに(または他のスペース文字を追加せずに)このパラメータを渡す方法を探しています。しかし、インデントを保ちます(私のスクリプトを読むことができるように)。
ベストアンサー1
some_command --flag "$(printf '%s' foo\
bar\
quux)" arg2
一番読みやすいわけではありませんが、そうします。 「foo」、「bar」、および「quux」をコマンドの引数とprintf
フォーマット%s
文字列として渡します。引数より少ない書式文字が指定されている場合、書式文字列は必要に応じて繰り返されます。これは%s%s%s
、3つの文字列すべてをスペースなしで順番に印刷するのと同じです。最後に、「foobarquux」コマンドの出力は引数にprintf
置き換えられますsome_command
。