gpt4 book ai didi

linux - 在 WGET 忽略读取用户输入后运行 bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:54 25 4
gpt4 key购买 nike

我正在尝试创建一个可以轻松下载并从终端运行的 bash 脚本。在 bash 脚本中有几个用户输入。

运行:

sudo wget -O - https://script.com/script.sh | bash

这将下载脚本并使用 bash 运行它,但会忽略 script.sh 中的用户输入:

echo "Please enter a username:"
read -p 'Username: ' uservar
echo "Please enter a strong password:"
read -sp 'Password: ' passvar
echo
echo "
user=$uservar
password=$passvar
" >> ~/.data/cred.conf
echo "Succesfully installed."

运行:

sudo wget -O - https://script.com/script.sh && bash ./script.sh

工作正常并提示用户输入。有什么方法可以使用户输入与管道 (| bash) 一起工作?

最佳答案

来自评论

| bash <(cat) </dev/tty

为什么以及如何运作

  • <(cat)构造允许
    • 创建一个从继承的输入中读取的进程,此时,它是管道输出
    • 将输出重定向到用作文件的文件描述符,并将进程扩展更改为用作文件名的字符串
  • </dev/tty重定向伪终端设备 /dev/tty到bash进程的输入

关于linux - 在 WGET 忽略读取用户输入后运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52889971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com