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
的bash脚本必须有至少2个参数来调用。只有第二个以“$ 2”形式传递。否则,这可能导致错误。 “TCPHost.out”不是一个标准的unix命令,所以Stackoverflow上的人不知道它可能会如何表现 - 而这本质上是你的问题 – Vorsprung
你如何执行脚本?你传递给它什么参数? – vmachan
@vmachan .out文件是我C代码的编译版本。当我运行服务器和客户端,但不是主机时,它工作得很好。我的参数是例如./Launch.sh服务器 –