0

ブレース拡張を使用して、 cal 8 2014;に相当するものを作成するにはどうすればよいですか? cal 2014 年 9 月? cal {8,9} 2014cal 8 9 2014 (9 月 9 日を表示) に展開されます。cal {08 2014,09 2014}は有効なブレース展開ではなく、cal {"08 2014", "09 2014"}これはcal "08 2014" "09 2014"に展開されるため、ここでは明らかに意味をなさない 2 つのパラメーターです:/ ブレース展開の有用性に疑問を持ち始めています....

4

1 に答える 1

3

ループも素晴らしいですが、 printf|sh をレパートリーに追加すると、素晴らしい形になります。

printf "cal %s 2014\n" {8,9}|sh

明らかな利点の 1 つは、最初に |sh なしで実行して、正しく見えるかどうかを確認できることです。

ブレース展開に cal と 2014 が含まれるように、スペースをエスケープすることもできます。

$ echo cal\ {8,9}\ 2014\;
cal 8 2014; cal 9 2014;

次に、sh をパイプします。

$ echo cal\ {8,9}\ 2014\;|sh
    August 2014
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
   September 2014
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
于 2014-09-06T14:53:33.130 に答える