【问题标题】:How to fork in a bash script如何在 bash 脚本中分叉
【发布时间】:2015-06-06 18:36:43
【问题描述】:

您好,我有一个学校项目,我需要通过子进程使用 exec 创建命令行。我正在用 bash 编写脚本。

这是我的伪代码:

while true; do
read -p "Please type your Linux command. Type q to quit." lnxcmd
case $lnxcmd in
 ([Qq]*) exit;
esac

CREATE FORK
FIND CHILD PROCESS
IN CHILD PROCESS- 
  tokenize into array A, split at " "
  get size of array in n
  aggregate everything from 1 .. n as variable B
  exec A[0], B
display result, and kill child process

然后循环一直持续到 q 被按下。因为我没有使用 c,所以我不能创建一个 pid_t 变量并将其分配给 fork() 并像这样进入子进程。

如何使用 bash 命令访问子进程?另外,对于 bash 命令,exec 的正确语法是什么?

谢谢

【问题讨论】:

    标签: linux bash shell exec fork


    【解决方案1】:

    在 bash 中,您只需运行命令即可 fork/exec 一个子进程。例如ls 派生出一个孩子并执行ls 的副本。要获取 pid,请在后台运行它:ls& pid=$! – William Pursell

    您可以将您的主要工作放在一个函数中,在后台运行它,然后$! 会扩展为 PID。 (嗯,忍者。) – 4ae1e1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      • 2013-01-02
      相关资源
      最近更新 更多