gpt4 book ai didi

bash - 为 bash 命令提供部分输入

转载 作者:行者123 更新时间:2023-12-04 04:54:41 24 4
gpt4 key购买 nike

假设我正在运行一些命令 foo ,它会提示用户进行各种操作。我想为前几个提示提供值,但手动输入其余部分(即在 stdin 上)。

我该怎么做?我试过了

echo -e "foo\nbar\nbaz" | foo

这接受所有输入,但随后得到 EOF从输入流。我也试过
foo <(echo -e "foo\nbar\nbaz" & cat /dev/stdin)

这也不起作用。

最佳答案

这里的主要问题很可能是foo并非旨在将文件名作为参数。 (请记住, <(...) 不会在标准输入上传递 ... 的输出;相反,它会获取 expanded to a special filename ,可以从中读取以获取 ... 的输出。)要解决此问题,您需要可以再添加一个 < :

foo < <(echo -e "foo\nbar\nbaz" ; cat /dev/stdin)

或使用管道:
{ echo -e "foo\nbar\nbaz" ; cat /dev/stdin ; } | foo

(请注意,顺便说一下,我将 & 更改为 ; 。前者可以工作,但有点奇怪,因为您打算让 echo 处理前几个输入。)

关于bash - 为 bash 命令提供部分输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928472/

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