“如何接收在前台运行的linux命令的输出”;指挥部&引用&引用;[前台进程数][PID]”;在文件中?
我想重定向这个命令firefox的输出&,我知道添加“&”意味着我们将在前台运行该命令,当我们使用它时,我们将收到“[放弃的进程数][PID]”, 这就是我要做的:“如何接收在前台运行的linux命令的输出”;指挥部&引用&引用;[前台进程数][PID]”;在文件中?,linux,bash,Linux,Bash,我想重定向这个命令firefox的输出&,我知道添加“&”意味着我们将在前台运行该命令,当我们使用它时,我们将收到“[放弃的进程数][PID]”, 这就是我要做的: firefox & > firefoxFile 但是当我打开firefoxFile时,我发现它是空的,我没有找到“[放弃的进程数][PID]”&是一个命令分隔符,就像一样是(但有一个副作用,就是在后台将命令放在它前面,不同的是,后面没有另一个命令不是错误)。之后的一切都是单独的命令 因此,重定向必须位于和之前 因此
firefox & > firefoxFile
但是当我打开firefoxFile时,我发现它是空的,我没有找到“[放弃的进程数][PID]”
&
是一个命令分隔符,就像一样
是(但有一个副作用,就是在后台将命令放在它前面,不同的是,后面没有另一个命令不是错误)。之后的一切都是单独的命令
因此,重定向必须位于和之前
因此,以你为例:
firefox > firefoxFile &
放弃了什么?它的数字和PID有什么不同?也许你应该试着重新编写你的问题,让它更清楚我的意思是foregroundSolution:firefox>firefoxFile&&place命令放在后台而不是前台。顺便说一句,这个问题最好在我们的姐妹网站上问;所以这只是关于开发软件的问题。等等,你是在谈论作业控制元数据吗?这根本不是程序输出的一部分,脚本无论如何都会关闭作业控制。使用$代码>以捕获PID。在没有作业控制的环境中没有作业编号。这就是我所做的firefox>firefoxFile&
但是当我使用cat firefoxFile
时,我没有发现任何文件是空的,这是正确的、预期的和正常的行为。只有firefox
将输出写入stdout时,该文件才会包含输出。PID和作业编号不是从firefox输出的。当我在终端中写入``firefox&``时,我会让命令在后台运行并接收消息[1][PID],如果我想将消息[1][PID]重定向到一个文件,我该怎么办?这是我的问题,我尝试firefox>firefoxFile&
但当我使用cat firefoxFile
时,我发现它是空的,我没有找到“[1][PID]”消息{firefox&}2>outfile
——但这只在终端中起作用,不在脚本中起作用,关于交互/终端使用的问题属于on,不在这里。