«cmd /C start "Title" "C:\Folder\file.bat"» 的 Linux 等效项

Pau*_*gas 1 command-line bash java

我有一个 Java 程序,它Runtime.getRuntime().exec()使用以下命令在 Windows 上运行一个批处理文件:

cmd /C start "Title" "C:\Folder\file.bat"
Run Code Online (Sandbox Code Playgroud)

由于cmd /C执行命令,Java 程序很快结束,然后终止(1)启动批处理脚本(2)。因此进程(批处理文件)将继续独立运行。 start "Title" "C:\Folder\file.bat"

现在,假设我有一个 shell 脚本(例如file.sh),我想从 Java 启动它并且有类似的行为。它怎么可能是Linux 中的等效命令(3)


笔记

  1. 请参阅CMD.exe(命令外壳) | Windows CMD | SS64.com
  2. 请参阅开始 - 启动程序 | Windows CMD | SS64.com
  3. 标题 ( "Title") 不是必需的。

ter*_*don 5

启动脚本的方法是给出它的路径:

/path/to/script.sh
Run Code Online (Sandbox Code Playgroud)

如果父进程退出,要让它继续运行,您可以通过附加&以下内容在后台启动它:

/path/to/script.sh &
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果您有一个脚本调用另一个脚本,如下所示:

#!/bin/bash
script2.sh &
Run Code Online (Sandbox Code Playgroud)

你可以运行script1.shwhich 会调用script2.sh,因为它被发送到后台,立即退出。