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

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

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

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

    Python3 将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。.../usr/bin/env python3 # -*- coding: UTF-8 -*- import argparse import os import imghdr from PIL import...只设置了最长边参数以及源目录 ? 脚本会提示,不设置目标目录则会覆盖源文件,直接回车,或者输入 Y 或者 y 确认,输入 N 或者 n 则退出程序。 设定了目标目录,但目标目录不存在 ?...脚本会提示目标目录不存在,直接回车,或者输入 Y 或 y 则会创建这个目录,输入 N 或者 n 则退出程序。 正常以及报错状态 ?...代码解析 首先,要写命令行的脚本,就需要处理各种各样的参数,所以,argparse 库是必不可少的 Python os 库对文件夹的常见用法 # 判断目录是否存在 os.path.exists(__dir

    1.2K30

    shell脚本编程之路3

    [TOC] 0x09 shell编程函数 描述:Bash(Bourne Again shell)也跟其他编程语言一样也支持函数,一般在编写大型脚本中需要用到,函数可以让我们将一个复杂功能划分成若干模块,...# 传递给函数的所有参数     echo "The string of the Single parameters is $@ !" ...# 传递给函数的单个参数 } funWithParam 1 2 3 4 5 6 7 8 9 34 73 #注意这里传递给函数的参数 WeiyiGeek.函数参数传递 递归函数 bash也支持递归函数...来获取执行的结果; shell中函数传参与脚本传参是一致的,但是得注意 $0 代表任然是父脚本的名称; 删除函数 描述:像删除变量一样,删除函数也可以使用 unset 命令,不过要加上 .f 选项,如下所示...done 将调试功能设置为“on”来运行脚本:_DEBUG=on .

    3.3K10

    Linux 下Python 脚本编写的奇技淫巧

    action 参数指定跟属性对应的处理逻辑,通常的值为 store , 被用来存储某个值或将多个参数值收集到一个列表中。 nargs 参数收集所有剩余的命令行参数到一个列表中。...其实python 脚本也可以用其他方式来接收 传递给他的文件数据或者bash命令输出,包括将命令行的输出通过管道传递给该脚本、重定向文件到该脚本,或在命令行中传递一个文件名或文件名列表给该脚本。...通常来讲,命令的执行不需要使用到底层 shell 环境(比如 sh、bash)。一个字符串列表会被传递给一个低级系统命令,比如 os.execve() 。...3 直接将消息作为参数传给SystemExit(),那么你可以省略其他步骤 #!/usr/bin/env python3 raise SystemExit('It failed!')...查找文件,可使用 os.walk() 函数,传一个顶级目录名给它 #!

    1.6K30

    Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用) 如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的...那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。.../usr/bin/env python3 # -*- coding: UTF-8 -*- import argparse import os import imghdr from PIL import...脚本会提示,不设置目标目录则会覆盖源文件,直接回车,或者输入 Y 或者 y 确认,输入 N 或者 n 则退出程序。...正常以及报错状态 代码解析 首先,要写命令行的脚本,就需要处理各种各样的参数,所以,argparse 库是必不可少的。

    70610

    Shell 一键安装命令

    -s stable wget -qO- https://get.rvm.io | bash -s – arg1 arg2 # – 表示 参数不做任何处理,bash -s 传参时, KaTeX parse...首先通过 curl 或者 wget 将安装脚本下载下来,将内容输出到标准输出。...这一步对应上面的 curl -ssL 或者 wget -qO-,一定要注意将错误或者异常输出过滤掉,保证标准输出的内容就是脚本的内容。...然后通过管道传递给 shell,shell 在没有指定脚本文件的时候,支持从标准输入读取脚本内容并解释执行。这样将"下载 - 保存 - 安装"这几步操作合到一个命令中完成。...对于 rvm 的安装又有点特殊,安装脚本需要指定执行参数,bash -s stable 中 -s 之后的部分就是透传给安装脚本的参数,翻译下可以理解的形式是: $ \curl -sSL https://

    1.4K20

    04-shell

    负责接收用户输入的操作指令(命令),并运行和解释,将需要执行的操作传递给操作系统内核并执行 shell程序在系统中充当了一个”命令解释“的角色 4.1 Shell常见种类 Bsh:由贝尔实验室编写。...chmod +x使文件具有可执行权限, 直接运行; 直接调用解释器, 将脚本文件作为参数传入 (比如bash test.sh) 使用source(也可用.代替)执行文件 通常情况下, 最方便的方式就是方式...$# 获取当前执行的shell脚本后面接的参数的总个数 $* 获取当前shell的所有传参的参数,不加引号同加上双引号,例如: “$”,则表示将所有的参数视为单个字符串,相当于“112$3”。...$@ 获取当前shell的所有传参的参数,不加引号同@加上双引号,例如: “$@”,则表示将所有参数视为不同的独立字符串,相当于“$1” “$2”“$3” “……”,这是将参数传递给其他程序的最佳方式,...6.3定义变量的方式 6.3.1三种定义变量的方式 直接赋值 传参 (传递参数) 交互式设置变量,使用read命令 6.3.2 read命令说明 获取输入内容,在命令行中使用 [root@localhost

    7610

    Linux:进程替换

    加载器的理解: argv这个参数会被传递给ls,其实exec系列接口含义也是如此,在命令行参数中,有所的进程都是bash的子进程,所以exec其实就是一个代码级别的加载器,他可以做到将可执行程序的代码和数据导入到内存中...,然后再调用main函数的时候将argc参数传递给程序,其实就相当于是你在执行该程序之前,优先给你加载出来一个栈帧结构。...脚本语言不是脚本在跑,而是由解释器来解释执行 我们想要执行脚本文件的话,路径传的就不是脚本文件,而是脚本文件的解释器, bash+test.sh则是作为命令行参数。 ...(1)任何语言都有像exec这类的接口 (2)语言可以互相调用的原因是 无论是什么语言写的程序 在操作系统看来都是进程 1.5.3 将命令行参数和环境变量传递给另一个程序  环境变量是在子进程创建的时候就默认继承了...,即使没有传环境变变量参数,也可以在地址空间找到。

    13410

    Python 自动化指南(繁琐工作自动化)第二版:附录 B:运行程序

    或者先切换到那个文件夹运行;你可以从任何文件夹输入python3,终端会在PATH环境变量的文件夹中找到它。...C:\Users\Al> 不带任何文件名运行python(或python3)将导致 Python 启动交互式 shell。...每个命令开头的@符号防止它显示在终端窗口中,并且%*将在批处理文件名后输入的任何命令行参数转发给 Python 脚本。Python 脚本依次读取sys.argv列表中的命令行参数。.../usr/bin/env bash python3 /home/al/example.py bash 将这个文件保存到/home/al/example.sh。...这是一个 Shell 脚本:运行一系列终端命令的脚本。这个 Shell 脚本将运行我们的 Python 脚本/home/al/example.py,然后运行 bash Shell 程序。

    1.8K40

    如何入门 Bash 编程

    编写基本的脚本来运行命令,只不过是复制我用来从 PDF 中删除图像的命令和选项,并将其粘贴到文本文件中而已。将这个文件作为脚本运行,大概也会产生同样的结果。...向 Bash 脚本传参数 在终端中运行命令与在 Shell 脚本中运行命令之间的区别在于前者是交互式的。在终端中,你可以随时进行调整。...在 Shell 脚本中,有一些预定义的可以反映脚本启动方式的变量。初始变量是 $0,它代表了启动脚本的命令。下一个变量是 $1 ,它表示传递给 Shell 脚本的第一个 “参数”。...将 hello.sh 更改为: echo $1 用引号将两个参数组合在一起来运行脚本: $ bash hello.sh "hello bash" hello bash 对于我的 PDF 瘦身项目,我真的需要这种非交互性...脚本都需要先使用 Bash,然后学习如何将这些脚本从仅仅是一个命令列表变成响应输入的东西。

    95030

    记一次远程命令执行漏洞的挖掘过程

    6、结合上面的目录信息和任意文件读取漏洞,对JSP文件简单审计一下,发现logContentNewest.jsp会调用一个bash脚本,便猜想能否使用它构造命令执行: ?...分析logContentNewest.jsp和 被调用的sh脚本,得知path参数最终会传入sh脚本的FILE_PATH变量,然后调用下面的判断逻辑。...结果显示不完整,只能看到返回的第一行的结果,没关系,可以简单优化一下: payload:"`ifconfig |xargs`" 拓展知识:xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数...(arguments),传递给其他命令。...小结 漏洞是由于程序调用bash脚本传参时没有做过滤,通过$(cmd)这样的方式来执行命令并将结果存入变量中,在脚本判断文件不存在时会返回文件名,造成了回显。

    1.7K10

    Shell:子shell概念

    对于Shell的子进程来说,它是一个从父级Shell进程派生而来的新的Shell进程,我们将这种新的Shell进程称为这个父级Shell的子Shell。...Shell脚本是从上至下、从左至右依次执行每一行的命令及语句的,即执行完一个命令之后再执行下一个。...可以使用$BASH_SUBSHELL变量来查看从当前进程开始的子shell层数,$BASHPID查看当前所处BASH的PID,这不同于特殊变量$$值,因为$$在大多数情况下都会从父shell中继承。...注意:子 Shell 虽然能使用父 Shell 的的一切,但是如果子 Shell 对数据做了修改,比如修改了全局变量,那么这种修改只能停留在子 Shell,无法传递给父 Shell。...不管是子进程还是子 Shell,都是“传子不传父”。

    1.4K30

    利用OpenAI和NVIDIA Riva,在Jetson上搭建一个AI聊天机器人

    开发人员可以向 API 发送请求,获得生成的文本作为输出,适用于从文本生成到翻译等各种任务。...项目介绍方案架构:来自麦克风的语音输入通过 Riva 的自动语音识别(ASR)库转换为文本,然后传递给 OpenAI API。...设置输入设备和采样率(默认为16000),您可以使用以下命令检查输入设备:python3 transcribe_mic.py --list-devices然后运行脚本/asr/transcribe_mic.pypython3...设置输出设备和采样率(默认为44100),您可以使用以下命令检查输入设备:python3 talk.py --list-devices然后运行脚本/tts/talk.py.sh python3 talk.py..., auth) output = ""运行代码input-device和sample-rate-hz参数应该替换为你自己的python3 --input-device

    81140

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

    如: "$#" 记录传递给shell的自变量个数 "$*" 传递给脚本或函数的所有参数 $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n"...txt ,并将 $file 赋值为txt,空值及非空值不作处理 ${file:=txt} 若 $file 没设定或空值,则回传 txt ,将 $file 赋值为txt,非空值时不作处理...continuen命令时,则跳过最里层的 n次循环体的执行,即开始第n个(从内向外数) 循环的下一个循环过程。 什么是第n个? for var in ......脚本中的路径 在脚本里,切忌使用 ./等形式的相对变量,使用之后脚本的移植性将变得极差,另外如果脚本放在crontab内运行,相对路径基本无法识别。.../file.sh ,如果不加的话,linux 默认会从PATH 里去找该 file.sh。 注:运行一个 shell 脚本时会启动另一个命令解释器。

    1.9K10

    shell系统给定变量大全——及使用方法

    变量名 作用 $0 当前脚本的名字 $n 传递给脚本或者函数的参数,n表示第几个参数 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或者函数的所有参数 $$ 当前shell...不为0时,超过指定的秒将退出shell $UID 当前用户ID 使用方法: 编辑脚本文件。  ...vi test.sh 测试内容: echo "文件名:$0" echo "第一个参数:$1" echo "第三个参数:$3" echo "共计传递了:$#个参数" echo "传递的所有参数:$*"...echo "传递给函数的参数:$@" echo "当前脚本的进程ID:$$" echo "二进制文件路径:$BASH" echo "BASH的启动文件:$BASH_ENV" echo "BASH的版本号...6个元素:$BASH_VERSINFO" echo "BASH的版本号:$BASH_VERSION" echo "脚本使用的默认编辑器:$EDITOR" echo "当前的用户ID(有效):$EUID"

    20730
    领券