112得票3回答
如何将一个命令的输出赋值给一个数组?

我需要将grep命令的结果赋值给一个数组...例如:grep -n "search term" file.txt | sed 's/:.*//' 这导致出现了许多带有行号的行,其中包含搜索项。1 3 12 19 最简单的方法是将它们分配给一个Bash数组。如果只是分配给一个变量,它们会变成以空...

112得票3回答
Bash中反引号和大括号的区别

当我要回答这个问题时,我本打算使用${}符号,因为我在这里看到过很多次,人们认为它比反引号更好。 然而,当我尝试使用${}时,它并不像我预期的那样工作。最后,我不得不回到传统的反引号。 joulesFinal=${echo $joules2 \* $cpu | bc} 我收到了这条消息...

100得票3回答
如何避免使用bash命令替换删除换行符?

为了加速一些bash脚本的执行,我想使用命令替换将命令的结果保存在一个变量中,但是命令替换会用空格替换0x0A换行符。例如: a=`df -H` 或者 a=$( df -H ) 当我想要进一步处理$a时,换行符会被替换为一个空格,并且所有的行现在都在一行上,这使得使用grep更加困...

64得票4回答
Fish中等价于bash $(command) 表示法的符号是什么?

我目前正在使用fish shell而非bash shell。我遇到的一个符号使用问题是$(command),类似于这个SOF post中所描述的。在fish shell中应该如何编写这个命令呢?请注意,我可以在要执行的命令周围使用反斜杠字符,但是链接的post和其他post不建议这样做,因为这...

26得票1回答
在Bash中,命令替换的退出代码如何赋值给本地变量?

如果在bash中将赋值分配给函数中的本地变量,我该如何检查命令替换的退出代码? 请参见以下示例。第二个示例是我想要检查退出代码的情况。 是否有人对此有好的解决方法或正确的解决方案?$ function testing { test="$(return 1)"; echo $?; }; test...

26得票2回答
何时命令替换会比孤立的相同命令产生更多的子Shell?

昨天有人向我建议,在Bash中使用命令替换会导致不必要的子shell生成。该建议是特定于这个用例的:# Extra subshell spawned foo=$(command; echo $?) # No extra subshell command foo=$? 就我所知,这似乎适用于此...

19得票3回答
在 msys bash 上,当包含换行符时,PS1 命令替换会失败。

这个命令执行成功 $ PS1='$(date +%s) $ ' 1391380852 $ 但是如果我添加一个换行符,它就失败了 $ PS1='$(date +%s)\n$ ' bash:command substitution:第1行语法错误,附近有意外的符号 `)' bash:c...

17得票4回答
命令替换和进程替换的区别

我正在尝试理解这两个类似命令之间的差异。aa=$(foo | bar | head -1) read aa < <(foo | bar | head -1) 我知道<()需要#!/bin/bash,但这会使它变慢吗? 它们创建相同数量的子shell吗? 它们需要相同数量的b...

16得票3回答
字符串替换中的命令替换

有没有可能做类似以下的事情:echo ${$(ls)/foo/bar} 我相信在某处看到过类似的工作示例,但这会导致“错误的替换”。 我知道有其他方法可以做到这一点,但这样一个简短的一行代码会很有用。我是否遗漏了什么或者这是不可能的呢?

16得票3回答
xargs:使用管道的命令替换$(...)不起作用

我正试图编写一个简短的脚本,以下是命令:echo "aaa111 bbb111" | xargs -I {} echo {} | sed 's/111/222/g' 返回结果为: 返回 aaa222 bbb222,这就是我期望的。我期待下一个命令:echo "aaa111 bbb111" | ...