BASH脚本将值输入Java扫描程序

BASH脚本将值输入Java扫描程序,java,bash,java.util.scanner,shortcut,Java,Bash,Java.util.scanner,Shortcut,我在一个系统上工作,管理员让生活变得有点困难。我有一个名为client.sh的父脚本。该脚本调用一个Java类,Java类有一个Java.util.Scanner实例,等待用户输入字符串。然后,它等待用户在退出之前键入“退出” 我想在我的BASH概要文件中创建一个快捷方式来自动执行此操作,因为每次我都要在这个Java类中输入完全相同的字符串。因此,快捷方式将调用client.sh脚本,将预先确定的字符串打印到Java提示符中,最后将exit打印到Java提示符中。我怎样才能做到这一点呢?听起来像

我在一个系统上工作,管理员让生活变得有点困难。我有一个名为client.sh的父脚本。该脚本调用一个Java类,Java类有一个Java.util.Scanner实例,等待用户输入字符串。然后,它等待用户在退出之前键入“退出”


我想在我的BASH概要文件中创建一个快捷方式来自动执行此操作,因为每次我都要在这个Java类中输入完全相同的字符串。因此,快捷方式将调用client.sh脚本,将预先确定的字符串打印到Java提示符中,最后将exit打印到Java提示符中。我怎样才能做到这一点呢?

听起来像是你想要的

alias shortcut="(echo exactsamestring; echo exit) | client.sh"
显然,您需要将
exactsamestring
替换为适当的内容,并将
快捷方式
替换为要创建的别名的名称


这假设
client.sh
只调用Java程序,因此
client.sh
的stdin将传递给Java程序。这就是我阅读你的问题的方式,尽管不看剧本很难确定。

这看起来非常接近。但是我可以给它一个文本字符串而不是变量吗?另外,我想给它的文本字符串中有双引号。这让我很头疼。我想给它trace.set(“debug”,yes)@rshaq我给你的是一个文本字符串。其中没有变量。如果您希望在文本中使用双引号,那么将整个内容用单引号括起来:
(echo'exactstring';echo exit).
结果表明它希望我使用(echo'trace.set(\'debug\,yes);(echo exit)。。。谢谢。@rshaq是的,当引号从脚本传递到Java程序时,可能需要额外的转义来保留引号。