将输入从shell脚本传递到另一个使用read的脚本

将输入从shell脚本传递到另一个使用read的脚本,shell,unix,Shell,Unix,我试图通过将一组单独的脚本分组来加速一些工作流程,我们只需要通过一个shell脚本连续调用这些脚本。问题是我试图调用的脚本之一依赖于一系列提示和read语句来获取输入 这是一个应用非常广泛的脚本,所以我不想胡乱改变它接受输入的方式。是否有任何方法可以将参数以正确的顺序作为对每个提示的响应来读取?只需在stdin上输入所需的内容即可。一种简单的方法是使用heredoc: ./secondscript <<EOF $first_answer $second_answer ...etc..

我试图通过将一组单独的脚本分组来加速一些工作流程,我们只需要通过一个shell脚本连续调用这些脚本。问题是我试图调用的脚本之一依赖于一系列提示和read语句来获取输入


这是一个应用非常广泛的脚本,所以我不想胡乱改变它接受输入的方式。是否有任何方法可以将参数以正确的顺序作为对每个提示的响应来读取?

只需在stdin上输入所需的内容即可。一种简单的方法是使用heredoc:

./secondscript <<EOF
$first_answer
$second_answer
...etc...
EOF

假设first_answer、second_answer等的值都是一行,它们将被提供给这样调用的脚本中相应的读取调用。

不要这样设计脚本,这样才是更好的答案。也就是说,是的,你可以在stdin上输入。我不会让我写的,我可以保证。对不起,你是什么意思,我对这很陌生。点头。至少,您可以检查输入到环境变量中的内容,并仅在未设置它们时提示:[[$foo]]|{printf“%s”输入foo的值:;read foo;}-这为您提供了一条路径,使脚本更易于编程调用,而无需更改遗留用户的行为。这种情况的特例是yes实用程序:谢谢,我试试看。