首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何仅在Java程序需要时才将'y‘或'n’传递给shell脚本?

在Java程序中,可以使用ProcessBuilder类来执行shell脚本,并且可以通过标准输入流(stdin)向shell脚本传递参数。要实现仅在Java程序需要时才将'y'或'n'传递给shell脚本,可以按照以下步骤进行操作:

  1. 创建一个ProcessBuilder对象,并设置要执行的shell命令,例如:
代码语言:txt
复制
ProcessBuilder pb = new ProcessBuilder("/bin/sh", "your_script.sh");
  1. 获取ProcessBuilder对象的标准输入流,并将其转换为BufferedWriter对象,以便向shell脚本传递参数,例如:
代码语言:txt
复制
Process process = pb.start();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
  1. 在Java程序中获取用户输入的值,判断是否需要将'y'或'n'传递给shell脚本,例如:
代码语言:txt
复制
Scanner scanner = new Scanner(System.in);
System.out.print("Do you want to pass 'y' or 'n' to the shell script? (y/n): ");
String input = scanner.nextLine();
  1. 根据用户输入的值,将'y'或'n'写入标准输入流,例如:
代码语言:txt
复制
if (input.equalsIgnoreCase("y")) {
    writer.write("y");
} else if (input.equalsIgnoreCase("n")) {
    writer.write("n");
}
writer.newLine();
writer.flush();
  1. 最后,关闭标准输入流和进程,例如:
代码语言:txt
复制
writer.close();
process.waitFor();

通过以上步骤,就可以在Java程序需要时将'y'或'n'传递给shell脚本。请注意,以上代码仅为示例,实际使用时需要根据具体情况进行适当的修改。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和云函数(SCF)。

  • 腾讯云服务器(CVM):腾讯云提供的弹性云服务器,可根据实际需求选择不同配置的虚拟机实例,支持多种操作系统和应用场景,适用于各种规模的企业和个人用户。了解更多信息,请访问:腾讯云服务器产品介绍
  • 云函数(SCF):腾讯云提供的事件驱动的无服务器计算服务,可帮助开发者在云端运行代码,无需关心服务器管理和运维。云函数支持多种编程语言,包括Java,可以方便地执行各种任务和脚本。了解更多信息,请访问:云函数产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell脚本学习1

仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。...环境变量 :所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...特殊变量 变量 含义 $0 当前脚本的文件名 $n递给脚本函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本函数的参数个数。...$* 传递给脚本函数的所有参数。 $@ 传递给脚本函数的所有参数。被双引号(" ")包含,与 $* 稍有不同 $? 上个命令的退出状态,函数的返回值。 $$ 当前Shell进程ID。...* 和 @ 的区别: * 和 @ 都表示传递给函数脚本的所有参数,不被双引号(" ")包含,都以"1" " 但是当它们被双引号(" “)包含,”2 … n"的形式输出所有参数;“@” 会将各个参数分开

28220

Shell编程从入门到精通

Shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。...直接运行解释器,其参数就是 shell 脚本的文件名,如: sh /root/shelldemo/hello.sh 在使用解释器直接执行shell程序这种方式来运行脚本,不需要考虑脚本程序的执行权限了...] [gt77smsjks.jpg] 3.3、变量类型 变量的类型可以分为:局部变量、全局变量 局部变量:局部变量在脚本命令中定义,仅在当前 shell 实例中有效,其他 shell 启动的程序不能访问局部变量...Shell程序:参数传递 在执行Shell程序脚本,是可以向shell程序传递参数。 4.1、参数传递方式 传递参数的方式:....这意味着必须将函数放在脚本开始部分,直至 shell解释器首次发现它可以使用。 调用函数仅使用其函数名即可。

82601

写好Shell脚本那些不得不知道的细节

标准输出和错误输出改向out文件 $ cmd >out 2>>out $ cmd >out 2>>&1 5. shell的变量 hell实际上是基于字符串的程序设计语言,但也有变量。...如: "$#" 记录传递给shell的自变量个数 "$*" 传递给脚本函数的所有参数 $* 和 $@ 都表示传递给函数脚本的所有参数,不被双引号(" ")包含,都以"$1" "$2" … "$n"...${file:=txt} 若 $file 没设定空值,则回 txt , $file 赋值为txt,非空值不作处理 ${file?...默认情况下,shell会以空格、制表符、换行符作为分隔符,但遇到以上情况需要使用IFS来自定义shell的分隔符。...exit类似,作用是跳出函数;在函数中使用 exit会退出整个shell脚本,而不是退出函数; exitn:退出当前shell程序n为返回值 returnn:用于函数中,n是函数的返回值,用于判断函数执行是否正确

1.8K10

Linux基础(五)

一、shell编程基础 1、shell编程 程序=指令+数据 编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释能力 2、路径设置...则是子进程放到父进程进行执行,影响当前环境,常用于读取配置文件 5、bash中变量分类、 本地变量(普通变量):生效范围为当前shell,对当前shell之外的其他shell进程,包括当前shell....来表示,用于脚本代码中调用通过命令行参数传递给它的参数 特殊变量:$?.......") $@ :传递给脚本的所有参数,每个参数为独立字符串 ( "string1" "string2" "string3" ... ) $# :传递给脚本的参数的个数 $@ $* :只有在被双引号引起来的时候才会有差异...清空位置变量 set -- 位置变量的扩展功能(执行一次,移动一位,只使用$1就好) 但我们在执行一个程序时,如何判断其是否执行完,我们可以通过shift来看看 shift NN值很大,超过了给定变量的总数

1.2K80

使用python执行shell脚本 并动态参 及subprocess的使用详解

如果args是一个序列,则第一个项目指定命令字符串,并且任何其他项目将被视为附加的shell参数。 可以先创建一个简单的shell脚本 a.sh 1 2 分别代表脚本的 第一个和第二个参数 ?...如果不写shell=True,默认为shell=False,需要在args的第一个参数指定执行器路径 ?...如果设置universal_newlines为true,则文件对象stdout和stderr将作为文本文件打开,但可能会有\ n,Unix行尾约定\ r,Macintosh约定\ r \ n中的任何行终止...所有这些外部表示被Python程序视为\ n。注意:此功能仅在Python是使用通用换行支持(默认)构建可用。...Popen.kill() 杀死进程 以上这篇使用python执行shell脚本 并动态参 及subprocess的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考。

5.2K30

shell脚本极简教程

但是,考虑到Shell脚本的命令限制和效率问题,下列情况一般不使用Shell: 资源密集型的任务,尤其在需要考虑效率(比如,排序,hash等等)。...需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++FORTRAN 来处理)。 有跨平台(操作系统)移植需求(一般使用C Java)。...变量类型   运行shell,会同时存在三种变量:   1) 局部变量   局部变量在脚本命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。   ...例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$   运行结果: 29949 变量 含义 $0 当前脚本的文件名 $n递给脚本函数的参数。...n 是一个数字,表示第几个参数。例如,第一个参数是1,第二个参数是1,第二个参数是2。 $# 传递给脚本函数的参数个数。 $* 传递给脚本函数的所有参数。 $@ 传递给脚本函数的所有参数。

1.8K60

Linux Shell编程入门

2.3 变量类型 运行shell,会同时存在三种变量: 1) 局部变量 局部变量在脚本命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。...2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...一般Shell变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 特殊变量列表 变量 含义$0当前脚本的文件名$n递给脚本函数的参数。...n 是一个数字,表示第几个参数。例如,第一个参数是1,第二个参数是2。$#传递给脚本函数的参数个数。$*传递给脚本函数的所有参数。$@传递给脚本函数的所有参数。...当n>=10需要使用 11、输入输出重定向 Unix 命令默认从标准输入设备(stdin)获取输入,结果输出到标准输出设备(stdout)显示。

3K10

Linux之expect工具免交互式shell脚本执行

Linux之expect工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。...-i交互式输入命令,使用"exit""EOF"退出输入状态--标示选项结束(如果你需要传递与expect选项相似的参数给脚本),可放到#!行:#!.../usr/bin/expect ---v显示expect版本信息 expect 命令参数: spawn交互程序开始,执行后面的命令程序。...需要进入到expect环境可以执行,不能直接在shell环境下直接执行set timeout n设置超时时间,表示该脚本代码需在n秒钟内完成,如果超过,则退出。...如果设置为-1表示不会超时set定义变量$argvexpect脚本可以接受bash的外部参,可以使用[ lindex $argv n ]n为0表示第一个参,为1表示第二个参,以此类推expect从交互程序进程中指定接收信息

1.1K10

Groovy初学者指南

在本篇博客中,我们探讨Groovy与Java之间的联系与区别,深入了解Groovy的语法,并展示如何Java中使用GroovyShell来运行Groovy脚本。...这使得Groovy在处理反射、元编程和脚本化任务更加灵活。与此相反,Java是一种静态类型的编程语言,它要求在编译就要确定类型和结构。另一个联系和区别在于Groovy与Java代码的互操作性。...通过使用Groovy的元编程特性,你可以更加灵活地编写代码,并且可以根据需要动态添加、修改删除类的属性和方法。...闭包是一个可以作为参数传递给方法存储在变量中的代码块。...然后,我们通过参数传递给闭包来调用它,并将结果存储在result变量中。运算符重载Groovy允许重载许多运算符,以便根据需要自定义操作。例如,可以重载+运算符来实现自定义的加法操作。

41830

Shell base用法描述

告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。 1. base shell 基础知识 1.1....中存在三种变量 局部变量:::局部变量在脚本命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。...环境变量:::所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...参 使用方法 我们在使用脚本文件的时候可以向文件中传递一些参数,脚本则可以使用n这种方式来获取参数,n这种方式来获取参数,0代表文件名,1代表的是第一个参数,1代表的是第一个参数,2代表第二个参数,以此类推...echo 第10个参数为${10} echo 参数共有$#个 echo 输出所有参数 $* } 当参数大于10,参数需要用${n}来获取 函数调用 sun(){ return

28120

Groovy 初学者指南

在本篇博客中,我们探讨Groovy与Java之间的联系与区别,深入了解Groovy的语法,并展示如何Java中使用GroovyShell来运行Groovy脚本。...这使得Groovy在处理反射、元编程和脚本化任务更加灵活。与此相反,Java是一种静态类型的编程语言,它要求在编译就要确定类型和结构。 另一个联系和区别在于Groovy与Java代码的互操作性。...闭包是一个可以作为参数传递给方法存储在变量中的代码块。...然后,我们通过参数传递给闭包来调用它,并将结果存储在result变量中。 运算符重载 Groovy允许重载许多运算符,以便根据需要自定义操作。例如,可以重载+运算符来实现自定义的加法操作。...除了直接在Java代码中定义Groovy代码,我们还可以Groovy代码保存在独立的脚本文件中,并通过GroovyShell来执行该脚本

34230

3分钟短文 | Linux 命令正确的退出方式:exit 0

引言 通常,在编写Bash脚本需要在满足特定条件终止脚本,或者根据命令的退出代码采取措施。 在本文中,我们介绍Bash exit内置命令和已执行命令的退出状态。 ?...打印 tee 命令的退出代码。 Bash exit 指令 该exit命令以 N 状态退出 shell 程序。...运行以&&(AND)||(OR)分隔的命令列表,命令的退出状态确定是否执行列表中的下一个命令。...此处,mkdir 仅在cd返回 0 执行命令: cd /opt/code && mkdir project 如果脚本结尾exit没有指定参数,则脚本退出代码是脚本中最后执行的命令的退出代码。 #!...下面是显示非脚本用户调用脚本如何终止脚本的示例: ? 如果您以root用户身份运行脚本,则退出代码将为零。否则,脚本将以status退出1。

1.8K30

技术栈系列基础篇1-shell

一、简介1.1、 什么是shellShell是用C语言编写的程序Shell是一种应用程序,该应用程序提供一个界面,用户通过界面访问linux1.2、Shell脚本Shell 脚本,是Shell编写的脚本程序...描述该shell脚本所使用的解释器,详见1.3 例如:#!/bin/sh #!...,shell会从这些目录中找到路径$PWD,当前工作目录$UID,当前用户ID四、运算符执行命令,命名、变量、符号之间需要空格隔离例如,执行整数运算:expr...这意味着必须将函数放在脚本开始部分,直至 shell 解释器首次发现它可以使用。调用函数仅使用其函数名即可。...${N}第10个到第N个参数列表 $* or $@ 不包括$0在内的所有参数 $# 不包括$0在内的参数个数 $FUNCNAME 函数名称(仅在函数内部有值

62520

Shell学习笔记

, $$和命令行参数 $$ 表示当前Shell进程的ID,即pid $0 当前的脚本名 $# 传递给脚本函数的参数个数。 $n递给脚本函数的参数。...上个命令的退出状态,函数的返回值 $* 传递给脚本函数的所有参数 $@ 传递给脚本函数的所有参数, 与$*区别在于被双引号(" ")包含,"$*" 会将所有的参数作为一个整体,以"$1 $2 …...message} 如果变量 var 为空已被删除(unset),那么消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。...若此替换出现在Shell脚本中,那么脚本停止运行 ${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值 3....取非 -o 运算,有一个满足即可 -a 与运算,两个都满足对 注意 条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ] #!

672100

Shell脚本调用另一个脚本的三种方法

5.export命令设置临时环境变量 我们需要知道Shell中按照变量的作用域和生命周期,Shell变量可分为四大类: (1)永久环境变量:需要修改配置文件,变量永久生效。...(3)全局变量:在脚本中定义,仅在当前Shell脚本中有效,其他Shell脚本进程不能访本,其作用域从定义的位置开始,到脚本结束被显示删除的地方为止。...注意,全局变量既可以在Shell函数内定义,也可以在shell函数外定义,因为shell函数内定义的变量默认为global,且作用域从“函数被调用时执行变量定义的地方”开始,到脚本结束被显示删除的地方为止.../JAVA_HOME/lib;$JAVA_HOME/jre/lib 注意,修改文件后要想马上生效需要执行source /etc/profile,不然只能在下次重新登录生效。.../JAVA_HOME/lib;$JAVA_HOME/jre/lib 注意:修改文件后要想马上生效需要执行source ~/.bash_profile,不然只能在下次重新登录生效。

11.9K50

linux shell指令大全整理

linux shell指令 shell是一种脚本语言, 需要有编译器执行 bash是linux下默认的shell sh是unix下默认的shell 在ubuntu中bash和sh都可用 执行.../test.sh 变量类型 局部变量 在脚本中定义, 仅在当前shell中有效, 其他shell不能访问 环境变量 所有程序, 包括shell启动的程序, 都能访问环境变量, 在c中通过system()...函数执行的结果可以通过环境变量传递回来 shell变量 特殊变量, 比如传递给shell的参数 [外链图片转存失败,源站可能有防盗链机制,建议图片保存下来直接上传(img-YEeaQ6cj-1648294508220...双引号的优点: 双引号里可以有变量 双引号里可以出现转义字符 shell的文件包含 Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本 . filename # source filename...输出重定向是输出定向到文件里 输入重定向是从文件读书数据作为输入给程序 >右边不需要空格 深入理解 一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件: 标准输入文件(stdin

1.6K50

简单&基础shell操作_转发分享

用法: unset variable_name 变量类型 运行shell,会同时存在三种变量: 1) 局部变量 局部变量在脚本命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量...2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。...shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 特殊变量: image $* 和 $@ 的区别为: $* 和 $@ 都表示传递给函数脚本的所有参数...参数多于格式控制符(%),format-string 可以重用,可以所有参数都转换。 arguments 使用空格分隔,不用逗号。...像删除变量一样,删除函数也可以使用 unset 命令,不过要加上 .f 选项,如下所示: unset .f function_name shell的文件包含: Shell 也可以包含外部脚本外部脚本的内容合并到当前脚本

1K10
领券