11得票2回答
为什么 `cat <(cat)` 会产生 EIO 错误?

我有一个同时从两个输入文件读取数据的程序。我想让这个程序从标准输入读取数据。我打算使用类似以下的代码:$program1 &lt;(cat) &lt;($program2) 但我刚刚发现cat &lt;(cat) 产生.... mmap2(NULL, 139264, PROT_READ|PRO...

24得票7回答
Jenkins流水线中的sh命令似乎不尊重管道符号。

我正在使用版本2.32.2上的管道中的Jenkinsfile。由于各种原因,我希望从pom文件中提取版本号字符串。我希望不必添加maven help插件并使用evaluate。我很快就想出了一个小的sed表达式,用于从pom中获取它,并在jenkins工作区执行器的命令行上使用管道来工作。 ...

82得票11回答
从子shell设置父shell的变量

我该如何在子shell中设置一个变量,使得它能够影响到父shell?a=3 (a=4) echo $a

17得票4回答
通过管道获取子shell的退出代码

我怎样能够从子shell进程中获取wget的退出码? 所以,主要问题是$?等于0。在哪里可以找到$?=8?$&gt; OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "$?" 0 实际上,没有使用tee也可...

22得票1回答
何时将Bash变量导出到子shell和/或可由脚本访问?

我对于bash变量是否会被导出到子shell中并且何时能够被脚本访问感到困惑。到目前为止,我的经验使我相信bash变量会自动传递给子shell。例如: &gt; FOO=bar &gt; echo $FOO bar &gt; (echo $FOO) bar 以上内容似乎表明bash变量可以在...

14得票2回答
管道符号左侧是子shell吗?

编辑: 我下面关于 sed 's@^@ @' &lt;(f1) 的评论是不正确的。虽然$BASH_SUBSHELL表示我们与启动程序在同一级别,但变量在主脚本中丢失了。 根据Gordon的答案,我测试了f1 &gt; &gt;(sed 's@^@ @'),似乎可以正确地工作。...

9得票1回答
子Shell中使用的"basename"返回"command not found"错误

当运行此脚本时: #!/bin/sh -ex if [[ $# -ne 1 ]]; then echo "./import-public-ssh-key.sh &lt;absolute path to public key&gt;" exit 1; fi PATH=$1 KEY=...

22得票4回答
如何在不创建子shell的情况下将命令输出存储到变量中 [Bash <v4]

ksh 有一个非常有趣的构造来实现这一点,在此答案中详细说明:https://dev59.com/NGgu5IYBdhLWcg3w2alm#11172617 自从Bash 4.0以来,就有了一个内置的 mapfile 命令,可以解决这个问题:http://www.gnu.org/softwa...

11得票1回答
执行单个命令时 Bash 会“吞噬”子 shell 进程

我意外遇到了一个 bash/sh 行为,想知道其中的道理和提供下面问题的解决方案。 在一个交互式的 bash shell 会话中,我执行: $ bash -c 'sleep 10 &amp;&amp; echo' 在 Linux 上使用 ps 命令,看起来像这样: \_ -bash ...

13得票4回答
从管道中读取的while read循环后变量被重置

initiate () { read -p "Location(s) to look for .bsp files in? " loc find $loc -name "*.bsp" | while read do if [ -f "$loc.bz2" ] then ...