Bash中多参数曲线支撑展开

时间:2014-09-06 01:55:32

标签: bash brace-expansion

如何使用大括号扩展来制作 cal 8 2014; cal 9 2014 cal {8,9} 2014 扩展至 cal 8 9 2014 (显示9月9日。) cal {08 2014,09 2014} 是不是有效的大括号扩展,我无法使用 cal {" 08 2014"," 09 2014"} 因为它扩展到 cal" 08 2014" " 09 2014" 这两个参数在这里显然没有意义:/我开始质疑大括号扩展的实用性....

1 个答案:

答案 0 :(得分:4)

大括号扩展很棒,for循环也很棒,但是将printf | sh添加到你的保留曲目中 你将处于良好的状态:

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

一个明显的好处是你可以在没有| 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