问题标签 [brace-expansion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
587 浏览

bash - 通过echo在标量变量中扩展bash参数

标题:标量变量内的 bash 参数扩展

我有一个 bash 脚本,它在两个文件之间运行差异。如果有差异,我希望它打印 statement1 和 statement2 它们很长,所以我将它们放入变量中,但 echo 语句不会扩展参数。这可以在bash中完成吗?

该脚本似乎有效 - 它在需要查找差异时找到了差异。然而,这是它打印出来的。

我想让它说

0 投票
2 回答
1174 浏览

linux - Bash 脚本:不使用 $@ 或 $* 扩展参数

使用$@您可以对 bash 中的文件列表执行操作。例子:

脚本.sh:

然后我可以调用这个程序

该参数将扩展为多个参数,变为$list. 但现在我想要其他参数,比如 1 美元、2 美元,而这个清单是 3 美元。所以我希望在dir1/{subdir1/*.dat,subdir2/*}脚本内部进行扩展,而不是成为许多参数。在命令行上,您可以这样做:

并获得所需的输出,即文件列表。所以我尝试了这样的事情:

调用:

但没有成功。非常感谢有关如何将此列表扩展为脚本内的变量的一些帮助!:)

编辑:所以下面的答案给出了使用这些命令的解决方案:

但是出于好奇,是否仍然可以将字符串传递dir1/{subdir1/*.dat,subdir2/*}find脚本内的命令(或任何具有相同目的的命令),而不使用$@, 并以这种方式获取列表?这可能很有用,例如,如果最好将列表作为不是第一个或最后一个参数,或者在某些其他情况下,即使它需要转义字符或引用参数。

0 投票
1 回答
2398 浏览

bash - 更改 bash 大括号扩展中的分隔符/分隔符

前提

我意识到这个问题已经存在,但解决方案实际上并没有改变分隔符。我想知道是否无论如何要更改分隔符,或者是否有人知道它的位置。


例子

假设我需要将此字符串传递给程序,用逗号分隔,因为这是程序接受的

印刷

我想要的地方

显然这只是一个简单的例子。


我试过的

什么都没有,因为我不知道在哪里可以找到这个分隔符,尽管我已经进行了相当广泛的搜索

也作为一个子问题:

尝试使用其他问题的 choroba 答案将其传递给我的脚本时,会产生错误。诚然,我没有尝试很长时间

我试过了

0 投票
2 回答
283 浏览

bash - 无法在bash中将大括号扩展与参数扩展结合起来

我想用大括号扩展来回应 $1 $2 $3。但它不起作用。

扩展的顺序是:大括号扩展、波浪号扩展、参数、变量和算术扩展以及命令替换(以从左到右的方式完成)、分词和路径名扩展。

根据bash手册,大括号扩展是在参数扩展之前进行的。

所以我认为 bash 应该先进行大括号扩展${1..3},将其转换为echo $1 $2 $3,然后进行参数扩展。

然而,事实是 bash 抱怨${1..3}是一个糟糕的替代品。这是为什么?

PS:谢谢你们!你们所有的答案都很棒。但我认为

Ignacio Vazquez-Abrams 的回答更接近我想要的。

0 投票
1 回答
1280 浏览

bash - create multiple subdirectory using mkdir in powershell

Is there a way I can do this in ms powershell? (w/o scripting)

I want to make multiple subdirectories at once just like in bash but when i run it in powershell it gives me this error :

At line:1 char:17
+ mkdir a\b\c\d{a,b,c,d}
+ ~
Missing argument in parameter list.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingArgument**

I had tried all of the following:

0 投票
1 回答
2657 浏览

linux - Systemd ExecStart 中的 Bash 大括号扩展

以下测试在 CentOS 7.1 中进行。

test.service在中创建以下文件/usr/lib/systemd/system/

并执行systemctl daemon-reload; systemctl restart test; systemctl status test -l

没有值的输出,因为${a}不替换为 word hello world,直到它echo ${a}变为

  1. echo $a: 工作
  2. echo $${a}: 工作

$$意味着 aa bash 中进程的 pid,但是为什么可以使用$$这个技巧ExecStart来获得这个词hello world呢?

0 投票
3 回答
94 浏览

bash - 是否可以在不使用 eval 的情况下使用变量绑定进行 bash 大括号扩展?

考虑以下脚本。

这个脚本的输出是:

所需的输出是:

产生所需输出的一种解决方案是

不幸的是,eval如果可能,我希望避免使用此解决方案。

有谁知道使用大括号扩展获得所需结果的方法,但不知道eval

0 投票
2 回答
808 浏览

linux - 如何使用带有大括号扩展的变量

我有四个文件:

在 linux shell 中,我可以使用: ls {1..4}.txt 列出所有四个文件,但如果我设置两个变量:var1=1 和 var2=4,如何列出这四个文件?那是:

什么是正确的代码?

0 投票
1 回答
160 浏览

linux - Understanding bash brace expansion

I read this post: https://superuser.com/questions/304807/brace-expansion-run-several-commands-instead-of-expanding-on-one-line and tried its eval echo way of expansion. Why are the two commands below different?


Command 1:

Result 1:


Command 2:

Result 2:

0 投票
2 回答
92 浏览

bash - 运行命令的模式扩展

知道我能够运行echomv扩展如下模式:echo {0..9}{A..Z}. 我很想知道是否有办法做同样的事情,但要运行命令?

上面的例子不起作用,但是有一些方法可以实现(分别运行 stop、rm 和 up)?