Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个Java程序的输出存储在bash变量中_Java_Bash - Fatal编程技术网

将两个Java程序的输出存储在bash变量中

将两个Java程序的输出存储在bash变量中,java,bash,Java,Bash,我想将两个Java程序的输出存储到专用的 bash变量。我试过这个: $sr="$(java server $p $ps 2>&1)" & rr="$(java client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)" 但是,$sr仍然是0$rr按预期设置 服务器程序在clien程序之前启动是很重要的。 另外:服务器程序仅在客户端停止时输出(完成)。 所有带列的参数都是java应用程序的参数。的&左侧部分在子shell中开始

我想将两个Java程序的输出存储到专用的 bash变量。我试过这个:

$sr="$(java server $p $ps 2>&1)" & rr="$(java client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)"
但是,
$sr
仍然是
0
<代码>$rr按预期设置

服务器程序在clien程序之前启动是很重要的。 另外:服务器程序仅在客户端停止时输出(完成)。
所有带列的参数都是java应用程序的参数。

&
左侧部分在子shell中开始。变量值不能从子shell传播到父shell

echo $$ ; echo left $BASHPID & echo right $BASHPID
您可以将
&
放在命令替换中:

sr="$(java server $p $ps 2>&1 &)"
rr="$(java client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)"

请注意,第一行不是以美元符号开头。

&
左侧部分在子shell中开始。变量值不能从子shell传播到父shell

echo $$ ; echo left $BASHPID & echo right $BASHPID
您可以将
&
放在命令替换中:

sr="$(java server $p $ps 2>&1 &)"
rr="$(java client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)"

请注意,第一行不是以美元符号开头的。

事实上,我找到了一种方法:

echo -n "$(java Server $p $ps)", & echo -n "$(java Client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)"

事实上,我找到了一种方法:

echo -n "$(java Server $p $ps)", & echo -n "$(java Client p:$p h:$h n:$n k:$k d:$d ps:$ps 2>&1)"

谢谢你,乔洛巴。不幸的是,这样服务器会一直监听客户端程序,而脚本永远不会结束。也许我必须为服务器启动一个新的shell并在那里进行输出?谢谢@choroba。不幸的是,这样服务器会一直监听客户端程序,而脚本永远不会结束。也许我必须为服务器启动一个新的shell并在那里进行输出?