0

我有一个 bash 脚本 a.sh

而当我运行 a.sh 时,我需要填写几个 read。让我们这样说

./a.sh
Please input a comment for script usage
test (I need to type this line mannually when running the script a.sh, and type "enter" to continue)

现在我在我的新脚本 b.sh 中调用 a.sh。我可以让 b.sh 自动填写“测试”字符串吗?

还有一个问题, a.sh 拥有大量打印到控制台,我可以通过在我的 b.sh 中做某事而不更改 a.sh 来使来自 a.sh 的打印静音吗?

谢谢。

4

2 回答 2

1

在广泛的范围内,您可以让一个脚本将标准输入提供给另一个脚本。

但是,您可能仍会看到提示,即使您看不到任何满足这些提示的内容。那看起来很糟糕。此外,根据具体a.sh操作,您可能需要它从标准输入中读取更多信息——但您必须确保调用它的脚本提供正确的信息。

但是,通常,您会尽量避免这种情况。提示输入的脚本不利于自动化。最好通过命令行参数提供输入。这使您的第二个脚本 , 很容易b.sh驱动a.sh.

于 2013-10-13T17:41:21.363 回答
0

#!/bin/bash
read myvar
echo "you typed ${myvar}"

b.sh

#!/bin/bash
echo "hello world"

您可以通过 2 种方法执行此操作:

$ ./b.sh | ./a.sh
you typed hello world
$ ./a.sh <<< `./b.sh`
you typed hello world
于 2013-10-13T17:45:47.973 回答