我有一个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的打印件吗?
感谢。
答案 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