问题标签 [subshell]
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.
bash - 在子shell中运行命令
我想自动化一项我经常做的重复任务。那就是为不同的架构创建 rpm。要编译代码并创建 rpm,我需要设置项目环境。设置 env 后,我将为当前架构创建 rpm,我应该再次通过设置 env 为其他架构构建 rpm。
我正在尝试自动化这个过程。问题是一旦设置了环境,我将成为新的 shell,所以我的脚本在子 shell 中不可见。如何自动化这个?
这是我尝试过的。
将 env 设置为 x86 后,没有执行下一个命令。
shell - 子外壳内变量内的引号
所以这是我遇到的一个奇怪的问题;我有一个脚本,它试图构建一组通过 运行的命令eval
,这些命令需要在子 shell 中作为一系列其他命令的一部分运行(这样我就可以异步运行它们)。这些命令包括引号以保护带有空格等的值,但是它们被视为根本不存在引号。
例如:
结果“Foo:找不到命令”的错误
虽然更直接地运行它可以正常工作,如下所示:
我意识到这个例子不是很有趣,但我不明白为什么引号会丢失以及如何避免它,同时仍然在适当的子 shell 中执行(在后台处理和不处理)。
bash - Bash:在子shell中使用花括号进行命令分组
当我尝试这样的事情时:
我越来越:
我确定我需要使用 subshell。而且我确定我需要在其中进行分组。那么如何避免语法错误呢?先感谢您!
bash - set -e 后跟条件控制运算符时在子shell中被忽略
我找不到任何表明这是正确行为的文档。我已经在 bash 4.2.25 和 4.1.2 上验证了这种行为。这些是我可以轻松访问的最新版本。如果有人能解释为什么条件会改变前一个子shell的行为,我们将不胜感激。
谢谢,布赖恩
bash - bash:如何显示包含某个文件的第一个目录的名称
我有这个:
但我只需要第一个目录名,如下所示:dir1
我这样做了:
它有效,但现在我在subshell
扩展时遇到了问题ssh
。有没有更优雅的方式(没有subshells
or sed
)来做到这一点?
如果没有,我将发布一个关于完全不同问题的问题 -subshells
扩展ssh
.
bash - 连续运行分叉进程,间隔后终止
我在编写 bash 脚本时遇到了困难,希望有人能提供帮助。基本上我试图同时运行多个进程,然后在一段时间后将它们全部杀死。
例如,如果我想跑my_long_running_task
50 次并在 10 分钟后杀死,这就是我想出的:
我不是 bash 专家,但这似乎应该可行 - 将所有进程分叉,将它们的 pid 添加到数组中。然后最后只睡一段时间,然后遍历数组并杀死所有的pid。确实这适用于我非常简单的 poc:
但是当我做一些比echo
运行 phantomjs 更有趣的事情时,进程不会在间隔后被杀死。
有什么想法吗?我错过了什么?
python - 监督 Python 子外壳
bash
我想在or中将 Python 解释器作为劣质进程运行zsh
。在此期间,我想向进程发送命令并查看STDOUT
. 像这样的东西:
可悲的是,这不起作用。我正在运行 GNU/Linux。
git - git 分支 vs $(git 分支)
当我git branch
在命令行上执行时,我得到一个 repo 上所有分支的列表,但是当我$(git branch)
在子 shell 中执行时,它首先打印出 repo 中顶级文件夹中的文件列表,然后再打印出分支名字。为什么?
我基本上是在尝试使用 for 循环遍历分支,但是文件列表破坏了我的脚本。
bash - How to avoid such code duplications in a Bash script?
In one of my Bash scripts I have such code repeated twice:
There are two such find
commands both performed on different directories, but with exactly the same parameters. Results of each finds are processed in a different ways. I am convinced that it is possible to avoid code duplication here. Is there a way to wrap this find
command into a function that stores find results in some data structure? Such data structure must be passed to the subshell that iterates over its items. How can I achieve this?
bash - 如果我将脚本作为后台进程获取会发生什么?
从 BASH 页面:
当脚本使用 source运行时,它在现有的 shell中运行,脚本创建或修改的任何变量在脚本完成后仍然可用。相反,如果脚本只是作为文件名运行,那么将生成一个单独的子shell(具有一组完全独立的变量)来运行脚本。
但是如果我跑步会发生什么
在这种情况下它是否作为子外壳运行?. myscript &
和有什么区别./myscript &
?