Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用bash脚本将更改的输入发送到在while循环中请求输入的python脚本

如何使用bash脚本将更改的输入发送到在while循环中请求输入的python脚本
EN

Stack Overflow用户
提问于 2021-05-04 19:27:32
回答 1查看 36关注 0票数 0

我有一个python脚本,它在开始时要求用户输入密码,简单地如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
password = input()

在我的bash脚本中,我有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo -n "password: "
read -s password
printf "$password" | python my_script.py

这可以很好地工作,但我有一个条件,如果用户输入了错误的密码,脚本会提示他再次键入密码,直到他键入正确的密码,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while not login:
    password = input()
    login = check_correct(password)

我应该能够在我的bash脚本中处理这个问题,但我不确定如何处理,我尝试使用yes命令,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yes $(read -s password) | python3 my_script.py

但不出所料,这总是会向脚本发送相同的输入。有人知道我怎么能做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2021-05-04 20:26:36

你可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while True:
    resp = input('Enter your password')
    if check_correct(resp):
        break
    else:
        print('Invalid Password, please try again')
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67390998

复制
相关文章
bash脚本 while语法
基本语法(比较常见的两种形式): 只要特定条件为真,”while” 语句就会执行 while [ condition ] do command1 command2 command3 done 或者 while [ condition ]; do command1 command2 command3 done 说明:  行1,首先进行条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则 不进入循环,介绍while 命令  行3,执行命令区域,这些命令中,
joshua317
2018/04/16
8470
bash脚本 while语法
Shell 之 read脚本输入
read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中
以谁为师
2019/05/28
1K0
在Linux使用Bash脚本命令
tee命令的默认行为是覆盖指定的文件,与>运算符相同。 要将输出附加到文件,请使用-a(--append)选项调用命令:
用户5005176
2021/08/10
2.1K0
python 重定向输入输出流 脚本
file-like objects that save standard output text in a string and provide
用户5760343
2022/05/13
6490
脚本链接 ssh 自动输入密码
首先安装 expectexpectexpect,因为默认是没有安装这个的,UbuntuUbuntuUbuntu 系统可以直接通过 sudo apt−get install expectsudo\ apt-get\ install\ expectsudo apt−get install expect 来安装,然后写好 expectexpectexpect 脚本,假如说叫做 login−via−sshlogin-via-sshlogin−via−ssh,如果脚本没有参数的话,直接 expect login−via−sshexpect\ login-via-sshexpect login−via−ssh 就可以了,注意必须用 expectexpectexpect 来运行这个脚本,其他 shellshellshell 工具是无法解析这个脚本的。
f_zyj
2019/05/27
4.4K0
shell 脚本中关于用户输入参数的处理
bash shell 中有一些特殊变量, 被称为 位置参数(positional parameter).
IT工作者
2022/07/03
2.5K0
unix 的 bash shell 脚本
1. test01   test02 1 200    1 100 2 500    2 300 3 200    3 50 4 100    4 150 输出 200 100 100 500 300 200 300 50  150 100 150 -50 awk 减法数组 awk ‘ NR == FNR { a[NR]=$2 } NR != FNR { print a[FNR], $2,(a[FNR]-$2)} ' /root/test* 2. 123abc456 45
bear_fish
2018/09/20
1.5K0
bash脚本编程
编程语言: 编译器,解释器 编程语言:机器语言,汇编语言、高级语言 静态语言:编译型语言 强类型(变量) 关键字: 事先转换成可执行格式 c,c++,JAVA,C# 动态语言:解释型语言 on the fly 弱类型 边解释变执行 php,shell,python,perl(面向过程) ​ 面向对象:shell,c 面向对象:JAVA,Python,perl,C++ ​ bash:脚本解释器 编程能力: 脚本编程 变量:内存空间,命名的内存空间(可以回收) 内存:编址的存储
若与
2018/07/04
1.3K0
bash 脚本 learning
linux bash 脚本是个好东西,能用工具搞定的就尽量避免用手敲。这里记录下学习过程中的问题。
上山打老虎了
2022/06/14
4370
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.3K0
如何在Bash Shell脚本中使用`exec`命令?
exec 是一个在Bash Shell脚本中使用的命令,它允许您替换当前进程的内容,包括进程ID和文件描述符。使用exec命令可以实现一些有用的功能,例如替换脚本当前的Shell进程、切换到不同的命令解释器、重定向标准输入输出等。本文将详细介绍如何在Bash Shell脚本中使用exec命令,并提供一些常见的用例和示例。
网络技术联盟站
2023/06/08
3.7K0
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR?
程序熵
2023/09/25
2150
我可以在不source脚本的情况下将变量从Bash脚本导出到环境中吗
通用的停止进程bash脚本
printf "\033[1;33musage: $0 process_cmdline\033[m\n"
一见
2018/08/07
1.4K0
用户输入和while循环
函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便使用。
清菡
2020/12/02
2.6K0
用户输入和while循环
处理Apache日志的Bash脚本
去年一年,我写了将近100篇网络日志。 现在这一年结束了,我要统计"访问量排名",看看哪些文章最受欢迎。(隆重预告:本文结尾处将揭晓前5名。) 以往,我用的是AWStats日志分析软件。它可以生成很详
ruanyf
2018/04/18
1.2K0
处理Apache日志的Bash脚本
Linux 脚本-echo for while if
• 环境变量:用于存储有关shell会话和工作环境的系统变量 • 状态变量:用于记录命令的运行结果
用户10412487
2023/04/04
5.3K0
Python基础学习-用户输入和while循环
一:函数input()的工作原理: 函数input()让程序暂停运行,等待用户输入一些文本。 获取用户输入后,Python将其存储在一个变量中,以方便使用。 1:编写清晰的程序: # 函数input()让程序暂停运行, 等待用户输入一些文本, 并在用户按回车键后继续运行 message = input("Tell me something, and I will repeat it back to you: ") print(message) # 通过在提示末尾(这里是冒号后面)包含一个空格
爱吃西瓜的番茄酱
2018/04/03
1.7K0
点击加载更多

相似问题

通过bash脚本将输入写入python脚本

35

如何从python脚本获取bash脚本的输入

10

调用python脚本,需要从bash循环中输入

11

Linux脚本的while循环中的用户输入

11

使用bash脚本的输入调用python脚本作为模块

25
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文