问题标签 [variable-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 投票
1 回答
100 浏览

bash - BASH 更好的方式来做一个回顾?

嘿伙计们,我想知道是否有一种聪明的方法可以在 bash 中回顾一段时间

似乎我应该能够以某种方式在我的扩展中做到这一切?

0 投票
2 回答
380 浏览

bash - BASH:星号作为参数

我写了一个小 BASH 脚本,它接受一个简单的配置并获取预配置的 3rd 方存储库,并从中下载某些包。

我目前遇到的问题是,当我在配置中使用星号时,它会在执行脚本时采用我所在的目录,并将目录中的所有文件作为参数展开。我了解单引号和双引号之间的区别,但似乎无论我做什么,我都无法让它工作。也许有人可以帮我解决这个问题。这是脚本:

示例配置 (/opt/configs/repos/.repos/configs/mysql:

PACKAGES当该选项设置为其他任何内容时,我对软件包的下载没有任何问题*,因此我不会发布任何回购配置(因为我知道存储库工作)。

我从当前目录运行它:

当我运行脚本时:

我想要的输出是:

这次运行的调试输出在这里:

在此先感谢 - 这真的让我陷入了困境......

0 投票
1 回答
615 浏览

powershell - 如何使用可变参数执行 dos 命令

如果我运行:

它运行。但如果我尝试:

它失败了,因为变量没有被扩展。

在 powershell 中完成此任务的最简单方法是什么?

0 投票
2 回答
320 浏览

bash - 使用带有 "${parameter:-word}" 参数扩展的引号

如果未设置变量,则使用${parameter:-word}参数扩展的形式评估为默认值时,引号的最佳做法是什么?

例如,假设一个带有-uset 的 Bash shell 脚本(在评估未定义或未设置的变量时生成错误),以测试变量是否具有值,编写等价物的最佳方法是if [[ -z "$FOO" ]]什么?

或者

或者是其他东西?

0 投票
1 回答
1680 浏览

bash - 如何引用 bash 标志参数以通过一个 getopts 调用并被第二个解释?

脚本nerf调用脚本herd,脚本调用脚本ernerf使用一个标志herd,明确接受需要传递给的参数er

这在以前不是问题nerf- 当herd刚刚从命令行调用时,我们可以单引号将参数传递给 -p 标志,它们永远不会被herd's解释getopts,而是会被er's解释getopts

但是现在我们已经在最终需要转到的标志中生成了值er,所以我需要在 中扩展变量,但$file_contents在它们到达之前nerf不要让它们被解释。getoptser

这三个脚本中的任何一个都可以修改。

如果我在上面的标记行上使用单引号,我会得到传递的文字字符串 "$er_args"。使用双引号,标志直接由herd. 使用单引号内的双引号,任何 getopts 都不会解释标志。

我认为这里没有优雅的解决方案,但如果我错了,请告诉我。我能想到的唯一解决方案是糟糕的:

  1. 通过 . 显式公开所有er的标志herd
  2. 从 中删除er呼叫herd并将其直接放入nerf.
  3. ???
0 投票
1 回答
301 浏览

ksh - ksh 中包含 * 的路径变量

我正在使用 Mac。我有一个名为 1 的目录。目录Test内的A(名称中有空格)

现在,下面的 ksh 脚本

生产

因此看起来 print 和 cd 都可以识别模式“1.A”,但 touch 不能。为什么?

0 投票
1 回答
134 浏览

tcl - 将参数扩展 {*} 与多个语句一起使用

{*}在 tcl 中用于参数扩展并遇到了这个问题。

如您所见,我定义了 reset 变量,并且正在评估 witheval和 with {*}

虽然eval工作正常,但{*}抛出错误为

然后我将变量更改reset如下,

即我已经删除了第二条set语句并且代码工作正常。

为什么{*}使用一个语句可以正常工作,而不是更多?或者我在这里缺少什么?

0 投票
2 回答
587 浏览

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

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

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

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

我想让它说

0 投票
1 回答
1503 浏览

arrays - 如何在zsh中扩展数组的元素?

假设我在 zsh 中有一个数组

我想附加.txt到每个元素

所以输出是

更新:

我想我可以做到这一点,但我认为有一种更惯用的方式:

0 投票
2 回答
663 浏览

bash - 在 for 循环中重击任意 glob 模式(带空格)

有没有办法可靠地使用存储在变量中的任意通配模式?如果模式同时包含空格和元字符,我会遇到困难。这就是我的意思。如果我将模式存储在没有空格的变量中,那么事情似乎就可以正常工作:

但是,一旦我在模式中添加一个空格,事情就会变得站不住脚:

显然,如果我事先知道模式,我可以手动转义它:

问题是,我正在编写一个事先不知道模式的脚本。有什么方法可以可靠地使 bash 将变量的内容视为通配模式,而不使用某种eval诡计?