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

如何以非交互方式将参数传递给交互式脚本

问: 我有一个 Bash 脚本,它使用 read 命令以交互方式读取命令参数,例如 yes/no 选项。是否有一种方法可以在非交互式脚本中调用这个脚本,并将默认选项值作为参数传递?...我需要向交互式脚本传递不止一个参数。 答: 如果你的脚本是通过 read 命令在交互式环境下读取命令参数,并且你希望在非交互式脚本中传递参数,那么你可以使用以下几种方法来模拟交互式输入: 1....使用 Here Documents Here Documents 可以用来传递多行输入到脚本: bash your-interactive-script.sh <<EOF arg1 arg2 arg3...EOF 其中 arg1, arg2, 和 arg3 是对应于脚本中每一个 read 提示的输入。...你的脚本从该文件描述符中读取内容,而不是从标准输入(stdin)中读取。

13310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    shell编程菜鸟教程_java并发编程实战 pdf

    函数名(){ ... } 引用自定义函数文件时,使用source func.sh 有利于代码的重用性 函数传递参数(可以使用类似于Java中的args,args[1]代表Shell中的$1) 函数的返回值...非交互式的:这种shell可能由某些自动化过程启动,不能直接从请求用户的输入,也不能直接输出结果给终端用户看。输出最好写到文件。比如使用Shell脚本。...login进程在启动shell时传递第0个参数指明shell的名字,该参数第一个字符为”-“,指明这是一个login shell。比如对bash而言,启动参数为”-bash”。...非登录式:不需login而由某些程序启动的shell。传递给shell的参数,是没有’-‘前缀的。...一旦打开一个交互式login shell,或者以–login选项登录的非交互式shell,都会首先加载并执行/etc/profile中的命令,然后再依次加载~/.bash_profile, ~/.bash_login

    4.6K20

    一篇文章从了解到入门shell

    2、交互方式 根据交互方式的不一样,命令行式shell(CLI shell),又分为交互式shell和非交互式shell。...2.2、非交互式shell 非交互式shell,就是把shell放在写在一个文件里面,执行的时候,不与用户交互,从前往后依次执行,执行到文件结尾时,shell也就终止了。...3.4、ksh 最早,bash交互体验很好,csh作为非交互式使用很爽,ksh就吸取了2者的优点。 3.5、zsh zsh网上说的目前使用的人很少,但是感觉使用的人比较多。...在交互式的使用中,目前很多人都是zsh,因为zsh拥有很强大的提示和插件功能,炫酷吊炸天。...4.11、shell传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。

    2.1K30

    Linux学习笔记(四)

    用户添加自己的命令到系统环境变量中只需要使用如下命令,将可执行文件目录添加到原有的系统环境变量PATH后面。...非交互式shell 系统执行shell脚本时用的就是非交互式shell。不同于交互式shell的地方在于它没有命令行提示符。...交互式shell和非交互式shell的区别在于: 如果bash是作为交互式shell启动的,它就不会访问/etc/profile文件,只会检查用户HOME目录中的.bashrc文件。...非交互式shell,当启动进程时,它会检查这个BASH_SHELL环境变量,读取的是环境变量所指定的配置文件。...使用bash -c选项传递过来的命令 BASH_LINENO 含有当前执行的shell函数的源代码行号的数组变量 BASH_REMATCH 只读数组,在使用正则表达式的比较运算符=~进行肯定匹配(positive

    1.1K10

    登录Shell与非登录Shell之间的区别

    问题 我理解交互式shell和非交互式shell之间的基本区别。但是,登录shell和非登录shell之间究竟有什么区别呢? 你能给出一些非交互式登录shell的使用示例吗?...登录进程告诉shell以登录shell的方式运行,遵循一个惯例:将参数0(通常是shell可执行文件的名称)加上一个-字符作为前缀(例如-bash,而正常情况下是bash)。...另一种获得非交互式登录shell的方法是通过标准输入远程登录并传递一个命令,而这个命令并不是来自终端的,例如,可以通过本地存储的脚本向服务器发送命令来实现:ssh example.com 非登录Shell:当你在已经存在的会话中打开一个新的终端(例如在图形界面中打开一个新的终端窗口、在screen或tmux会话中打开一个新的窗口、在Emacs的终端缓冲区中打开一个新的Shell等)时,...3.参数传递: •登录Shell:登录Shell在启动时会接收一个特殊的参数-(dash),这告诉Shell它是一个登录Shell。例如,如果使用的是Bash,参数0会是-bash。

    15010

    Linux基础(五)

    .来表示,用于脚本代码中调用通过命令行参数传递给它的参数 特殊变量:$?...declare -r name declare -ir name ( i表示数字 ) 查看:readonly -p 例如:PI = 3.1415926 位置变量:在脚本代码中调用通过命令行传递给脚本的参数...$1,$2,$3,...对应第一,第二...参数,shift [n] 换位置 [ $10 ,$ ] $0 :命令本身 $* :传递给脚本的所有参数,全部参数合为一个字符串( "string1 string2.......") $@ :传递给脚本的所有参数,每个参数为独立字符串 ( "string1" "string2" "string3" ... ) $# :传递给脚本的参数的个数 $@ $* :只有在被双引号引起来的时候才会有差异...b c echo $b yyy -->echo $c zzz read m n l 12、bash中如何展开命令行 把命令行分成单个命令词 展开别名 展开大括号中的声明{} 展开波浪符声明~ 命令替换$

    1.2K80

    如何入门 Bash 编程

    如果你已经频繁地使用过了 Bash,则向 Bash 编程的过渡相对容易。但是,如果你不曾使用过 Bash,你会很高兴地了解到它是一种为清晰和简单而构建的简单语言。...将这个文件作为脚本运行,大概也会产生同样的结果。 向 Bash 脚本传参数 在终端中运行命令与在 Shell 脚本中运行命令之间的区别在于前者是交互式的。在终端中,你可以随时进行调整。...初始变量是 $0,它代表了启动脚本的命令。下一个变量是 $1 ,它表示传递给 Shell 脚本的第一个 “参数”。...在 Shell 中交互如下所示: $ echo hello world hello world 在非交互式 Shell 脚本中,你 可以 以非常直观的方式执行相同的操作。...镜像,学习编写 Bash 脚本都需要先使用 Bash,然后学习如何将这些脚本从仅仅是一个命令列表变成响应输入的东西。

    95030

    深入了解定制 Bash | Linux 中国

    各种模式是可以相互组合的。比如,交互式 + 受限 + POSIX 或者非交互式 + 非登录 + 远程。不同的启动模式,决定着 Bash 所读取的启动文件。...理解这些操作模式,有助于帮助我们修改启动文件。 根据 Bash 参考手册,它会: 从文件中...、从作为 -c 调用选项传入参数的字符...,或者从用户的终端中读取输入。...也可以在 Bash 启动时通过向其传递 -login 标志来要求进入登录模式。要注意一点,Bash 的登录模式与非交互模式并不互斥。可以让 Bash 同时以登录模式和非交互模式运行。...当用户退出登录模式的 shell 时,或者有脚本在非交互式登录模式的 shell 中调用了内置 exit命令,Bash 会读取并执行 ~/.bash_logout 中的命令,如果 /etc/bash_logout...比如说,如果有人希望非交互式执行脚本时,shell 能读取 ~/.bashrc 文件中的设置,那么他可以把类似下面这样的内容放在一个名为 /etc/profile.d/custom.sh 的文件中...

    1.1K30

    Shell 简明教程

    以交互式非登陆 shell 启动 比如在图形界面下开一个终端窗口,或者在登录 Shell 提示符下再输入 bash 命令,就得到一个交互非登录的 shell。...非交互式启动 为了执行脚本而 fork 出来的子 Shell 是非交互式 Shell,启动时执行的脚本文件有环境变量 BASH_ENV 定义,相当于执行下面的命令: if [ -n "$BASH_ENV...执行交互式命令 凡是使用 which 命令查不到程序文件所在位置的命令都是 shell 的内建命令,这些命令相当于 Shell 的进程中的一个函数,没有单独的 man 手册,可以使用下面的命令查看: man...匹配 1 个任意字符 [若干字符] 匹配方括号中的任意字符 如我们可以使用 ls ch0[012].doc 命令查找文件,如果当前目录下有 ch00.doc 和 ch02.doc,ls 的参数会直接转换成这两个文件名...Shell 脚本语法 Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。

    2.1K40

    Linux 命令(228)—— shopt 命令(builtin)

    这是的多行命令的重新编辑更方便。 dotglob: Bash 在文件名扩展的结果中包括以点(.)开头的文件名。...execfail: 如果一个非交互式shell不能执行指定给 exec 内置命令作为参数的文件,它不会退出,如果 exec 失败,一个交互式 Shell 不会退出。...histverify: 如果设置,且 readline 正被使用,历史替换的结果不会立即传递给 Shell 解释器。而是将结果行装入 readline 编辑缓冲区中,允许进一步修改。...mailwarn: 如果设置,且 Bash 用来检查邮件的文件自从上次检查后已经被访问,将显示消息”The mail in mailfile has been read”。...sourcepath: 如果设置,source内置命令使用PATH的值来寻找作为参数提供的文件的目录。缺省为打开。

    2.1K20

    Shell脚本编程

    中有许多内建的变量环境:SHELL,PATH等等 局部变量:生效范围为当前shell进程中某代码片断(通常指函数) 位置变量: 2…来表示,让脚本在脚本代码中调用通过命令行传递给它的参数; 特殊变量:?...0 * @ # $1,$2,…:对应调用第1,第2等参数 $0:命令本身 $*:传递给脚本的所有参数(把所有参数当作整体) $@:传递给脚本的所有参数 $#:传递给脚本的参数的个数 案例1: myecho.sh...也就是expr这个命令后面跟的是3个参数 练习题 练习1:计算/etc/passwd文件中第10个用户的第20个用户的ID之和 练习2:传递两个文件路径参数给脚本,计算这两个文件之中所有空白行之和.../*.sh 个人配置 ~/.bash_profile ~/.bashrc 功能分类 profile类:为交互式的shell提供配置 bashrc类:为非交换式的shell提供配置 shell登录...非交换式登录:su USERNAME 编辑配置文件定义的新设置的生效方式 重新启动shell进程 使用source命令 案例,开机显示系统信息脚本 #!

    2.1K20

    shell脚本中一些注意事项

    shell脚本中的一些注意事项 简介 shell脚本语言采用交互式的方法解释和执行用户输入的命令或者自动解释和执行预先设定好的一连串的指令,它里面定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构...A: 1.1 source命令用法: source FileName 作用:在当前 bash 环境下读取并执行 FileName 中的命令。该 filename 文件可以无 "执行权限"。...其中包含了几个信息: 第一:read中的-p参数用来设置提示信息; 第二:在对r进行赋值的时候,使用了[]运算符,[]运算符执行基本的算数运算,其两边不需要空格。 Q: 参数传递?...A: 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推。...以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名: ? 输出的结果如下: ? 可以发现,单引号中的内容会直接原样输出来,如果想实现拼接的功能,需要我们使用单引号引起来。

    1.2K20

    ⒉设置 Bash 选项

    histappend 当shell退出时,历史清单将添加到以HISTFILE变量的值命名的文件中,而不是覆盖文件 histreedit 如果readline正被使用,用户有机会重新编辑一个失败的历史替换...histverify 如果设置,且readline正被使用,历史替换的结果不会立即传递给shell解释器。...默认为打开 huponexit 如果设置,当一个交互式登录shell退出时,bash将发送一个SIGHUP(挂起信号)给所有的作业 interactive_comments 在一个交互式shell中,允许以...,将显示消息“The mail in mailfile has been read” no_empty_cmd_completion nocaseglob 如果设置,当执行文件名扩展时,bash在不区分大小写的方式下匹配文件名...如果设置,source内置命令使用PATH的值来寻找包含作为参数提供的文件的目录。

    83640

    【rainbowzhou 面试26101】基础提问--shell 是否支持多维数组?为什么?

    介绍一下Shell脚本的编写格式? Shell脚本的编写格式通常遵循以下规则: #!/bin/bash 其中 #!/bin/bash 是指定了要使用的Shell解释器,也就是Bash Shell。...脚本的内容以换行符分隔,每行都是一个命令。在脚本中可以使用变量、条件语句、循环语句等各种语法结构。 4. 介绍一下Shell脚本的执行方式?...Shell脚本可以通过两种方式执行:交互式执行和非交互式执行。交互式执行是指在执行脚本时会进入Shell解释器的交互模式,等待用户的输入命令。...非交互式执行是指将脚本保存为一个文件,然后在终端中直接运行该文件。非交互式执行通常使用 ./filename 的方式来运行脚本。 5. 介绍一下Shell脚本中的变量?...如何将标准输出和错误输出同时重定向到同一位置?

    1.3K30

    Linux环境反弹shell原理与姿势

    随后使用输入重定向将文件内容传递给cat命令,此时会将文件input.txt的内容输出到标准输出 cat < input.txt 输入重定向也可以与其他命令结合使用,例如:可以使用grep命令查找文件中的特定字符串...,它允许用户将程序的输出保存到文件中或者将输出传递给另一个命令进行处理,输出重定向通常使用>或>>符号: (1) 使用 >:将命令的输出写入指定文件,若文件存在则会覆盖该文件 #命令格式 command...、记录错误日志或避免终端显示不必要的错误信息 (1) 将错误输出重定向到文件 使用以下命令将错误信息重定向到一个文件中: #命令格式 command 2> error_file 例如:如果你想运行一个不存在的命令并记录错误信息...TCP连接到攻击者的机器,同时将所有输入和输出都重定向到这个连接中,使得攻击者可以直接在受害者的shell中执行命令 其他反弹 NC反弹shell 如果目标机器上有nc并且存在-e参数,那么可以建立一个反向...连接)中读取数据,也就是说cat将会从远程主机接收输入 3、| while read line; do ...; done |:管道符,将cat命令的输出传递给后面的命令 while read line

    11510
    领券