2013-10-30 42 views
0

我有一个脚本,用于启动我创建的两个应用程序。一个是命令行界面,另一个是应用程序本身。Mac OSX - 启动Shell和工作目录

output/a.o 
output/b.o 

我有一个启动shell脚本,它执行以下操作。

#!/bin/bash  
./output/a.o & 
sleep 3; 
open -a Terminal.app output/b.o 

因此,shell脚本启动两个应用程序。 b.o依靠运行时由a.o生成的文件,该文件具有命令行界面的一些配置参数。我遇到的问题是第一个程序在当前工作目录中执行,但是在新窗口中打开命令行界面的第二个命令会在/ Users/Username目录或当前用户的HOME目录中打开它。因此,第二个应用程序b.o无法找到在运行a.o的当前工作目录中生成的文件。

我想知道是否有人会知道在当前工作目录下使用open命令执行命令行界面(b.o)的方式,如a.o(应用程序)。

注意:我不想为这两个脚本使用open,因为我希望从当前工作目录运行脚本,而不是用户的主目录。

+3

'.o'用于目标文件,编译过程中的临时状态。不要将它用于最终的可执行文件。 – Kevin

+0

感谢提示:) – Edwin

+1

根本没有扩展。 – Kevin

回答

1

我会建议您尝试AppleScript的,而不是打开这个 -

osascript -e 'tell application "terminal"' -e 'do script "cd /path/to/direcory; output/b.o"' -e 'end tell' 

这将打开一个新的终端窗口,cd到正确的目录,然后运行程序。

+0

谢谢,这工作完全符合我的预期:) – Edwin