2016-02-25 124 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"