如何';支架扩展';在Bash工作?
这里有一个例子 这是如何工作的?如何';支架扩展';在Bash工作?,bash,brace-expansion,Bash,Brace Expansion,这里有一个例子 这是如何工作的? 我更改此命令如下: $ echo {file1,file2}\ {\ A," B",' C'} file1 file2 A B C $ echo {file1,file2}\ -{\ A," B",' C'} file1 - A file1 - B file1 - C file2 - A file2 - B file2 - C 为什么第一个命令与示例中的命令不同? 救命啊 我知道我引入了一个额外的空间。如果将一个额外的空格更改为其他内容(冒
我更改此命令如下:
$ echo {file1,file2}\ {\ A," B",' C'}
file1 file2 A B C
$ echo {file1,file2}\ -{\ A," B",' C'}
file1 - A file1 - B file1 - C file2 - A file2 - B file2 - C
为什么第一个命令与示例中的命令不同?救命啊 我知道我引入了一个额外的空间。如果将一个额外的空格更改为其他内容(冒号、破折号等),则一切正常
没有关于以下命令的详细信息:echo{A”,“B”,“C'}\{D”,“E”,“F'}\{G”,“H”,“I'}in。我想知道更多 为什么第一个命令的工作方式与示例中的命令不同 因为您引入了一个额外的空间:
# |==> This is it!
# |
$ echo {file1,file2}\ {\ A," B",' C'}
file1 file2 A B C
$ echo {file1,file2}\ {\ A," B",' C'} # This is probably what you expected!
file1 A file1 B file1 C file2 A file2 B file2 C
额外的空间会导致shell首先展开{file1,file2}
,然后展开{\A,“B”,“C'}
引述自: 要扩展的模式采用可选前导的形式, 后跟一系列逗号分隔的字符串或序列号 表达式,后跟可选的 后记前导是包含在中的每个字符串的前缀 然后将大括号和postscript附加到每个结果中 字符串,从左向右展开 如果在大括号展开后引入空格(后面跟两个空格就是空格!),则以下标记不再被视为postscript,而是单独展开 为什么第一个命令的工作方式与示例中的命令不同 因为您引入了一个额外的空间:
# |==> This is it!
# |
$ echo {file1,file2}\ {\ A," B",' C'}
file1 file2 A B C
$ echo {file1,file2}\ {\ A," B",' C'} # This is probably what you expected!
file1 A file1 B file1 C file2 A file2 B file2 C
额外的空间会导致shell首先展开{file1,file2}
,然后展开{\A,“B”,“C'}
引述自: 要扩展的模式采用可选前导的形式, 后跟一系列逗号分隔的字符串或序列号 表达式,后跟可选的 后记前导是包含在中的每个字符串的前缀 然后将大括号和postscript附加到每个结果中 字符串,从左向右展开
如果在大括号展开后引入空格(退格后加两个空格即为空格!),则以下标记不再视为postscript,而是单独展开。谢谢。我知道我引入了一个额外的空间。如果将一个额外的空格更改为其他内容(冒号、破折号等),则一切正常。在中没有关于echo{A”,“B”,“C'}\{D”,“E”,“F'}\{G”,“H”,“I'}的详细信息。我想知道更多关于它的信息。@android_-su请看上面的编辑。我希望它澄清@android_-su试试这个:
echo{file,image}{0..4}.{raw,png,txt}
。。。你可以试一下…@android_-su:区别在于没有引号的空格分隔参数,而冒号或破折号则没有。例如,touch A B
有两个独立的参数,A
和B
,因此它创建两个文件,而touch A:B
只有一个参数,A:B
,因此它只创建一个文件。谢谢。我知道我引入了一个额外的空间。如果将一个额外的空格更改为其他内容(冒号、破折号等),则一切正常。在中没有关于echo{A”,“B”,“C'}\{D”,“E”,“F'}\{G”,“H”,“I'}的详细信息。我想知道更多关于它的信息。@android_-su请看上面的编辑。我希望它澄清@android_-su试试这个:echo{file,image}{0..4}.{raw,png,txt}
。。。你可以试一下…@android_-su:区别在于没有引号的空格分隔参数,而冒号或破折号则没有。例如,touch A B
有两个独立的参数,A
和B
,因此它创建了两个文件,而touch A:B
只有一个参数,A:B
,因此它只创建了一个文件。如果不占用额外的空间,一切都会好起来:echo{file1,file2}\\\\\\\\ A,“B”,“C'}
如果您避开添加的空间,一切又会好起来:echo{file1,file2}\\\\{\A,“B”和“C”}