2013-10-30 51 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