2016-02-25 122 views
0

參照以下的Unix外殼腳本,當我在正確的命令鍵入運行<(2 ./TCPHost.out $),我收到以下錯誤:的Unix外殼腳本版本

open[1905:26153] Metadata.framework [Error]: void _MDItemMarkAsUsedForPath(CFStringRef): was called with a NULL path 

這是我收到這個錯誤的唯一一個。有人能向我解釋爲什麼會發生這種情況嗎?奇怪的是,它在技術上是可行的,但它並不像其他人那樣打開另一個shell。

#!/bin/bash 

if [ "$1" = "Server" ] 
then 
    echo *********** SERVER IS RUNNING *********** 
    open -a Terminal ./TCPServer.out 
fi 

if [ "$1" = "Host" ] 
then 
    echo HOST IS RUNNING 
    open -a Terminal <(./TCPHost.out $2) 
fi 

if [ "$1" = "Client" ] 
then 
    open -a Terminal ./TCPClient.out 
fi 
+0

的bash腳本必須有至少2個參數來調用。只有第二個以「$ 2」形式傳遞。否則,這可能導致錯誤。 「TCPHost.out」不是一個標準的unix命令,所以Stackoverflow上的人不知道它可能會如何表現 - 而這本質上是你的問題 – Vorsprung

+0

你如何執行腳本?你傳遞給它什麼參數? – vmachan

+0

@vmachan .out文件是我C代碼的編譯版本。當我運行服務器和客戶端,但不是主機時,它工作得很好。我的參數是例如./Launch.sh服務器 –

回答

0

嘗試

open -a Terminal "./TCPHost.out $2"