问题标签 [command-substitution]

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 回答
38 浏览

scheduled-tasks - 此语句以交互方式运行,但不是从 'at' 计划的

Ubuntu headless 15.10:我正在开发的脚本将上述语句安排在“at”中。它在运行时没有执行预期的 iptables 插入任务,因为括号内的比较是错误的(我使用了一个未显示的 else 来了解这一点)。我尝试过更改零的引用...无引号、单引号和双引号。我知道 '==' 之前的值是 0,因为我在上面显示的内容之前将它插入到构造的预定命令中: echo $(/sbin/iptables -w -L INPUT -n|grep --line-buffered -m 1 -c -w 66.128.56.213) >> /home/mydir/testfile.txt

它在文件中回显了一个简单的 0。如果我只是在括号中尝试 0 == 0,它也会计算为假。谁能明白为什么我不能比较两个零彼此相同?以及如何按照我想要的方式使我想要的语句分支:当替换的命令等于零时?它与命令行的行为不同,并且按预期正确。我的猜测是外壳差异。我尝试使用双括号。没运气。([]) 也不起作用。也不用 eq 代替 ==。

0 投票
1 回答
326 浏览

bash - 将命令替换输出流式传输到终端,不带静噪颜色

有没有办法在执行时以颜色显示命令替换的输出,同时仍将其存储到变量中?这主要用于测试/调试目的,并且输出不会正常显示。

如果我这样做:

...那么这很接近,但在某些方面不是我想要的:

  • 即使命令会以其他方式向终端发出彩色输出,它也会以黑白打印。
  • 输出仅在命令完成后显示,而不是在运行时流式传输。

如何在不压制颜色的情况下有条件地将输出流式传输到终端?

0 投票
1 回答
55 浏览

bash - linux如何使用动态变量

我制作了一个 shell 脚本来进行一些计算。用户输入 2 个数字:第一个数字是月份(如果需要日期是 2010 年 2 月,例如他输入 2)第二个数字是年份(如果需要日期是 2010 年 2 月,例如他输入 2010 年)

然后,我的脚本将计算从 2000 年 1 月的每一天到用户使用以下代码输入的日期所经过的天数。

编辑(我的代码中有一些愚蠢的语法错误)

因为一个月有 31 天(在我的脚本中是的,我假设每个月有 31 天)我在最后一行代码中的“dd”变量将更改 31 次。

我想知道如何在不复制粘贴公式 31 次每次更改代码的情况下做到这一点。

0 投票
2 回答
212 浏览

bash - 如何在流程替换中使用 case/esac?

我有以下行可以正常工作:

但是,当我尝试将其用作命令替换时,bash 失败并出现错误。

代码:

结果:

反斜杠没有帮助\)t)语法在 GNU bash 3.2.57(t)中有效,但在 4.3.42 中无效。

似乎使用反引号对两个版本都适用:

但是我不想使用该语法,因为它已弃用

如何case在上述命令替换 ( $()) 中使用语法?

或者也许还有其他方法可以做同样的事情?

基本上是检查是否-t已经为脚本指定了参数,如果是,则执行一些命令。

0 投票
2 回答
7920 浏览

linux - 从命令的输出中设置 GDB 中的环境变量

我试图在挑战中利用缓冲区溢出,缓冲区从环境变量中获取它的值。在 GDB 中,我知道您可以使用以下命令设置环境变量:

但是我需要传递用户名变量特殊字符,所以我需要执行以下操作:

但是该命令没有被执行,并且用户名变量实际上包含我写下的内容,有人知道将特殊字符传递给环境变量的技巧吗?

0 投票
0 回答
41 浏览

find - GNU find 和更复杂的 -exec 选项参数值

这对我有用:

  1. {},\和 ';' 当使用任何其他语法时强制使用-exec根本不起作用?

  2. 以下更复杂的示例不起作用:

    echo这里只是为了演示。我最终计划使用类似的东西rm $TARGET_DIR/$(basename '{}')来代替它......它只是不能那样工作(嵌套)。有任何想法吗?

0 投票
2 回答
404 浏览

git - 在 git 命令别名中嵌套反引号

我正在尝试创建一个 git 别名来显示自最后一个标签以来的所有提交。我的基础是我过去经常使用的这个 SO 答案。

目前,我正在尝试使用如下git config --global alias.*命令:

这注册了一个名为“summary”的新“命令”,它将呈现自最后一个标签以来的所有提交消息。

但是,当我运行时git summary,git 会抛出此错误消息:

致命:模棱两可的参数“git”:未知的修订版或路径不在工作树中。

使用 '--' 将路径与修订分开,如下所示:

'git <command> [<revision>...] -- [<file>...]'

对我来说,这看起来像git describe --tags --abbrev=0嵌套在反引号内的内部命令没有正确评估。

我怎样才能解决这个问题?

0 投票
0 回答
57 浏览

bash - 命令替换不起作用

我正在尝试将命令的输出存储到下面的 bash 脚本中的变量,但输出显示在屏幕上而不是存储在变量中

0 投票
1 回答
108 浏览

bash - 将 Bash 赋值给变量作为命令替换和打印值输出

我想在 Bash 中实现这一点:echo $(a=1)并打印变量的值a

我测试了eval, $$a, {}$()但大多数时候它们都不起作用,无论是我从字面上a=1还是在一种情况下(我不记得是哪一种)它试图执行该值。

我知道我可以做到:a=1;echo $a但是因为我对每行一个命令很有趣(即使有时变得有点复杂)我想知道是否可以使用echo或使用printf

0 投票
2 回答
60 浏览

linux - 当命令作为变量传递时,如何在命令替换中包含 stdout/stderr 重定向?

我有以下脚本来检测我的网络在重新启动路由器后何时恢复:

但是,在终端中运行时,它会打印:

ping: 未知主机 &>/dev/null

我使用选项(启用调试)运行脚本-x并发现

在子shell中执行为

如何更改我的命令替换调用,以便 bash 不在输出重定向周围加上单引号?