调用bash脚本并从另一个bash脚本填充输入数据

时间:2013-10-13 17:36:04

标签: linux bash

我有一个bash脚本,a.sh

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

./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的打印件吗?

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

但一般来说,你试图避免这种情况。提示输入的脚本不利于自动化。最好通过命令行参数提供输入。这样,您的第二个脚本b.sh就可以轻松驾驶a.sh

答案 1 :(得分:0)

a.sh

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

b.sh

#!/bin/bash
echo "hello world"

你可以用两种方法做到这一点:

$ ./b.sh | ./a.sh
you typed hello world
$ ./a.sh <<< `./b.sh`
you typed hello world