bash - 如何在shell脚本中创建作业?

标签 bash shell

我知道执行命令并在末尾添加 & 会创建一个作业并使命令在后台执行。

现在我想在 bash shell 中创建一个作业。我试过了

#!/bin/bash

my-job &
# some other tasks

然后我执行了jobs,但没有任何输出。但是,ps aux 确实显示 my-job 正在后台运行。

我想在脚本中创建一个作业,因为在某些情况下我想将该作业置于前台。

最佳答案

作业通常是一个交互式 shell 概念,因为通常涉及一个控制终端。

Shell 脚本在非交互式、非登录的 shell session 中执行,因此默认情况下没有作业控制。

您可以通过设置强制在脚本内进行作业控制:

set -m

在脚本内。

来自帮助集:

-m  Job control is enabled.

关于bash - 如何在shell脚本中创建作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40079378/

相关文章:

windows - 使用 Windows 将 PostgreSQL shell 输出保存到文件

android - 在gradle中执行shell脚本看不到echo输出

perl - 如何在 shell 脚本中处理 Perl 数组元素?

linux - 调试 bash/ksh 脚本和下标

c++ - 在 C++ 程序中执行行计数 bash 命令(wc -l)

regex - 使用 grep 等 bash 工具解决难题

sql - 使用 SQL 语句调试 Shell 脚本时出错到 V_$UNDOSTAT

java - 在java中调用shell脚本?

linux - 如何编写 bash 脚本递归扫描子目录并列出当前日期的文件?

bash - 为什么 "if 0;"在 shell 脚本中不起作用?