最近几天有点心情不爽,又去了次迪斯尼,虽然现实问题没有解决,但总算放松了些。
碰到这么一个问题,用java调用外部程序,外部程序都写在一个sh里,七七八八调用了4个,并且比较头痛的是中间需要输入具体数值,并回车,才能继续执行。
两种思路
1 用java模拟人手工输入,关键词是getOutputStream
process = Runtime.getRuntime().exec("/root/tools/xxxx_run.sh 1a56");
OutputStream pOutputStream = process.getOutputStream();
PrintWriter outputWriter = new PrintWriter(pOutputStream, true);
outputWriter.print("1,2,3 \n");
outputWriter.flush();
outputWriter.close();
pOutputStream.close();
process.waitFor();
2 直接修改被执行的xxxx_run.sh ,让原本应该手工输入的1,2,3变成第二个参数
java程序可以修改为
process = Runtime.getRuntime().exec("/root/tools/xxxx_run.sh 1a56 1,2,3");
xxxx_run.sh 在原来应该手动输入的地方,修改为
./xxxx <<EOD
$2
EOD
EOD部分里面是第2个参数的意思
ps: 通过这次看看了script shell,终于知道所谓的cat能够起什么作用了,以前一直怀疑有了less,more,tail,还要这个cat干吗,这次可真幸亏有这个命令了。
分享到:
相关推荐
这篇博文“用java 调用外部程序”可能详细介绍了如何在Java环境中实现这一功能。虽然描述部分为空,但我们可以基于这个主题展开讨论。 在Java中,调用外部程序的主要方法是使用`Runtime`类或`ProcessBuilder`类。`...
这篇文档主要介绍了如何使用 ABAP 语言中的 `SUBMIT` 语句来调用外部程序,并详细解析了调用过程和数据传递的方式。我们将分为以下几个部分来深入理解这个知识点: 1. **`SUBMIT` 语句的使用**: `SUBMIT` 语句...
1. **中断源**:STM32提供了多种外部中断源,包括GPIO端口上的每个引脚都可以作为独立的中断输入。这些中断可以由上升沿、下降沿、双边沿、低电平或高电平触发。 2. **中断优先级**:STM32支持抢占式和子优先级的...
EXTI线路连接到STM32的GPIO端口,可以将任意一个或多个GPIO引脚配置为中断输入。配置过程通常包括选择中断线、设置触发条件(上升沿、下降沿、双边沿或低电平/高电平检测)、使能中断线以及配置中断优先级。 2. ...
系统8级外部中断,中断类型号从08H到0FH,它们对应于接在可编程中断控制器8259A的8个中断请求输入端IR0IR7的8个外部中断,其中IR2(中断类型号0AH)为系统保留,用户可通过该引脚实现对用户所需的外部硬件中断的...
这个程序将GPIOA的PIN0配置为外部中断输入,当检测到上升沿时,会调用`EXTI0_IRQHandler()`函数。在中断服务函数中,我们处理中断事件,并清除中断标志位,以便下次中断。 在实际应用中,外部中断可能用于开关检测...
在深入探讨“汇编输入输出程序中断”这一主题前,我们先来理解一下汇编语言的基本概念及其在输入输出及中断处理方面的应用。汇编语言是一种低级编程语言,它与机器语言非常接近,每一条指令几乎都能对应到处理器的一...
中断是指在程序执行过程中,出现一个事件,需要暂停当前的执行,转而执行该事件的处理程序。中断可以来自硬件或软件。 二、中断的分类 中断可以分为两类:外部中断和内部中断。外部中断来自硬件,如键盘按键、磁盘...
当按键被按下时,产生一个低电平信号至处理器的外部中断输入引脚。 - **中断处理流程**: - 当检测到有效电平变化时,处理器会进入中断服务程序(ISR)。 - ISR中的代码通常很短,以保证中断响应速度。在此例中,...
5. **编写中断服务函数**:在IAR开发环境中,你需要定义一个中断服务函数(ISR),这个函数将在外部中断触发时被调用。ISR应该包含处理中断事件的核心代码,注意尽量保持ISR简洁高效,避免执行耗时操作。 6. **注册...
在代码中,我们通常会选择一个GPIO引脚作为中断输入,例如GPIOA的第0位(PA0),并将其与EXTI0线关联。然后,我们需要设置中断触发条件,如上升沿或下降沿触发,并启用中断。 在初始化阶段,我们需要调用HAL_EXTI_...
4. **编写中断服务程序**:中断服务程序是中断发生时被调用的函数。在这里,应处理中断事件,例如读取GPIO状态、更新计数器或启动其他操作。 5. **使能中断**:最后,需要使能选定的中断线,使其能够响应外部事件。...
// 假设使用PA0作为外部中断输入 GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; // 上升沿触发中断 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不使用上拉下拉 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); ``` 一旦...
在这些应用中,用户输入通常是通过按键进行的,而外部中断则允许系统实时响应外部事件,提高程序的效率和响应速度。 首先,我们来看“外部中断”。在STM8S中,外部中断是一种硬件机制,它允许处理器在执行当前指令...
在按键中断模式下,当检测到有效的触发信号后,相应的中断服务程序(ISR)将被调用执行。在中断服务程序中,可以编写点亮LED灯和通过串口向PC发送按键状态信息的代码。当按键被按下时,LED灯亮起,同时发送按键按下...
单片机外部中断是指单片机在执行程序时,受到外部事件的中断,例如键盘输入、串行通信、定时器溢出等。外部中断可以分为两种方式:边沿触发方式和电平触发方式。边沿触发方式是指单片机在检测到外部事件的边沿时,...
6. **安装中断服务程序**:将中断服务程序关联到相应的中断向量表,确保中断发生时能正确调用。 在`STM32_TEST`这个压缩包中,可能包含了项目相关的源码、配置文件和其他资源,如头文件、链接脚本等。通过对这些...
综上所述,基于GD32的GPIO外部中断输入技术,结合中断服务子程序和定时器,能够实现对按键事件的实时响应,控制LED的闪烁。这种设计方式在许多嵌入式应用中非常常见,如智能家居、消费电子产品等,为设备提供了灵活...