java - 如何制作 bash 包装脚本来执行将标准输入和输出到标准输出的 java jar
问题描述
我制作了一个 java 程序,它从 stdin 获取输入并将输出返回到 stdout,它运行得非常好,使用:
cat inputfile | java -jar whatever.jar <args>
我想制作一个 bash 包装脚本放入我的~/bin
,这样我就可以运行
cat inputfile | whatever
,它将执行完全相同的功能。
如何制作一个包装脚本,将标准输入不受干扰地传递到 jar,同时接收标准输出回显到 CLI?
我想我可以通过一种方式将输入文件发送到命令,但不知道如何同时从命令中获取输出。
解决方案
解决方案:
#!/bin/bash
exec java -jar whatever.jar "$@"
讨论:
与所有 Unix shell 一样,Bash 有一个名为$@
. 它包含一个 shell 脚本的参数列表。我会用它来接收<args>
.whatever.jar
这样一来,Bash 甚至都不会触及的stdin
and stdout
。whatever.jar
它只是有java
call whatever.jar
,通过 传递<args>
给它$@
,然后让开。所有的读取stdin
和写入stdout
都是whatever.jar
直接完成的。
推荐阅读
- graphics - 使用非线性缩放将浮点数映射到颜色
- visual-studio-code - 如何在 vscode 中隐藏编辑器组菜单
- javascript - JQuery SmartWizard - 显示步骤,但未启用
- typo3 - 容器 DDEV / Typo3 Windows 10 中缺少项目文件
- git - git 子模块更新 --recursive --remote
- javascript - 函数改变全局变量
- javascript - 复制 SVG 的树
- sapui5 - UI5 Routed View 与预期的绑定元素,但无法正确找到路径
- sql - SQL 按数据范围内的日期组分组
- python-3.x - 处理列表中的冗余