我编写了一个java程序,它从stdin获取输入,并将输出返回到stdout,使用以下命令运行得非常好:
cat inputfile | java -jar whatever.jar <args>
我想制作一个bash Package 器脚本来放入我的 ~/bin
所以我可以跑了
cat inputfile | whatever
,将执行完全相同的功能。
如何生成一个 Package 器脚本,将stdin不受干扰地传递到jar,同时将stdout接收回cli?
我认为我可以通过单向方式将输入文件发送到命令,但不知道如何同时从命令中获取输出。
3条答案
按热度按时间dvtswwa31#
我认为bash脚本应该只包含java调用。
然后将文件重定向为脚本的输入:
a7qyws3x2#
解决方案:
讨论:
与所有unix shell一样,bash有一个特殊的变量,名为
$@
. 它包含shell脚本的参数列表。我会用它来接收<args>
的whatever.jar
.这样的话,bash就不会碰到
stdin
以及stdout
的whatever.jar
. 它只是java
呼叫whatever.jar
,通过<args>
通过$@
,然后让开。所有阅读来源stdin
写信给stdout
完成者whatever.jar
直接。kmb7vmvb3#
这应该可以做到: