Xcode Mac终端打开命令-保存已打开应用程序的PID?

Xcode Mac终端打开命令-保存已打开应用程序的PID?,xcode,macos,unix,Xcode,Macos,Unix,我想在terminal中打开一个xcode工作区,等待一段时间,然后关闭该工作区xcode有一些隐藏的魔力,它在项目中发挥了作用,这使得在自动化构建过程中有必要这样做 大概是- pid=`open proj.xcworkspace` sleep 30 kill $pid 因为多个xcode项目可能同时运行。我不能简单地杀死xcode,只是我开始的过程 如何获取在终端中打开的应用程序的PID?您可以使用$$捕获当前进程ID 或者,您可以使用ps-C programmam_NAME-o pid=搜

我想在terminal中打开一个xcode工作区,等待一段时间,然后关闭该工作区xcode有一些隐藏的魔力,它在项目中发挥了作用,这使得在自动化构建过程中有必要这样做

大概是-

pid=`open proj.xcworkspace`
sleep 30
kill $pid
因为多个xcode项目可能同时运行。我不能简单地杀死xcode,只是我开始的过程

如何获取在终端中打开的应用程序的PID?

您可以使用$$捕获当前进程ID

或者,您可以使用ps-C programmam_NAME-o pid=搜索进程ID

另外

这是一个工作的例子,我的意思是

#!/bin/bash

i=0
while [ "$i" -le 10 ]
do
    example.sh &
    Pid[$i]=$(ps -C "example.sh" -o "pid=")
    Pid[$i]=$(echo "${Pid[$i]}" | tail -n 1)
    #echo "${Pid[$i]}"
    i=$(($i +1))
done

for PID in "${Pid[@]}"
do
    kill "$PID"
done
exit 0

我不需要当前进程id。我只想杀死许多可能实例中的一个实例。我认为这没有帮助。您可能不需要$$,但另一个示例应该适合您的需要。仍然不确定它是否适合您。我有两个运行xcode的实例。我打开了另一个xcode实例。如何关闭刚刚打开的实例而不关闭其他实例?每个进程都有自己的ID。。。您需要通过ps或top获取该ID,并将其放入变量或文件中。你已经知道杀戮命令了。试试看。开始时,您需要知道进程的名称。就这些,你没有告诉我任何我还不知道的事情。很明显,我正试图通过编程来实现这一点。如果同一个应用程序有多个进程在运行,那么使用ps或top不会单独列出我刚才打开的进程。open不一定启动新进程。如果应用程序已经在运行,现有进程只会发送一个事件,告诉它打开文档。您可以使用-n选项覆盖它,但并非所有应用程序都能很好地处理多个实例。我不希望Xcode能够很好地处理。看起来Xcode的AppleScript接口支持您尝试执行的操作。文档中甚至有一个与workspace文档类相关的示例。
#!/bin/bash

i=0
while [ "$i" -le 10 ]
do
    example.sh &
    Pid[$i]=$(ps -C "example.sh" -o "pid=")
    Pid[$i]=$(echo "${Pid[$i]}" | tail -n 1)
    #echo "${Pid[$i]}"
    i=$(($i +1))
done

for PID in "${Pid[@]}"
do
    kill "$PID"
done
exit 0