gpt4 book ai didi

linux - 如何在 bash 中提供输入 [通过网络执行]

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:21 24 4
gpt4 key购买 nike

正如标题所说,在 linux 中,当我执行 sudo bash 时如何将输入提供给 bash?

假设我有一个读取名称的 bash 脚本。

我执行脚本的方式是通过 sudo 使用: cat read-my-name-script.sh | sudo bash

我们只是说这是我通过网络执行脚本的方式。

现在我想自动填写姓名,有没有办法提供输入。我试过这样做:cat read-my-name-script.sh < name-input-file | sudo bash name-input-file在哪里是用户将用于提供脚本的输入文件。

我是 linux 的新手,正在学习自动输入,想创建一个输入文件,用户可以在其中填充它并将其提供给我的脚本。

最佳答案

这很复杂,但可能会做你想做的事。

sudo bash -c "$(cat read-my-name.sh)" <name-input-file

-c 表示下一个引用的参数是要运行的命令(因此,在命令行上将脚本作为字符串读取,而不是从文件中读取),调用 shell 会插入在评估 sudo 命令之前,双引号内的文件内容。所以如果 read-my-name.sh 包含

#!/bin/bash
read -p "I want your name please"

然后命令扩展为

sudo bash -c '#!/bin/bash
read -p "I want your name please"' <name-input-file

(当然,此时 shell 实际上已经完全删除了外部双引号;我在它们的位置放置了单引号,以显示这看起来是实际可执行的、语法上有效的代码)。

关于linux - 如何在 bash 中提供输入 [通过网络执行],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51889123/

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