シェルでカスタム日付書式を作成し、書式の間にスペースを追加する最良の方法は何ですか?
たとえば、次のコマンドは昨日の日付を次の形式で印刷します。10月9日
custom_format="$(date -d '-1 day' '+%b %-d')"; echo $custom_format
今月と日の間に2つのスペースを追加する必要がありますが、通常私には機能しません。%t
追加のクリックスペースを使用してテストしましたが、この形式ではテストしませんでした。
custom_format="$(date -d '-1 day' '+%b **spaces here** %-d')"; echo $custom_format
ベストアンサー1
問題はコマンド自体とは関係ありませんdate
(必要に応じてフォーマット文字列にスペースを挿入するだけです)。問題はecho
何をするのか、どうするのかいいえ引用された拡張子$custom_format
。
quoteを使用しない場合、$custom_format
シェルはその値をその中の文字$IFS
(デフォルトではスペース、タブ、改行)に基づいて単語に分割し、結果の単語に対してファイル名を生成(ワイルドカード指定)します。
つまり、コマンドは、2つの引数の間のスペース数に関係なく、2つの引数を使用して呼び出される同様のコマンドに変換され、各引数は間echo $custom_format
にスペースを入れて1つずつ出力されます。echo Oct 9
echo
echo
探している出力を取得するには、$custom_format
パラメータとして呼び出すときに二重引用符を使用します。echo
また、見ることができます