0

我正在尝试自动安装Sqoop 2. 假设sqoop-server安装在 ip address1.2.3.4中。在sqoop-client我想设置该服务器的IP。手动,为此,我会:

sqoop2
sqoop:000> set server --host 1.2.3.4

我怎么能用 shell 的pipeand来完成echo呢?我试过了

set server --host 1.2.3.4 | sqoop2 

但它并没有奏效。

4

2 回答 2

3

许多交互式程序从stdin读取。假设sqoop2您可能会按照您的建议使用管道。但是您只是忘记使用echo命令:

echo set server --host 1.2.3.4 | sqoop2

上面的代码将 的输出设置echo为 的输入sqoop2。另一种选择是使用here字符串

sqoop2 <<< "set server --host 1.2.3.4"

第三种选择是使用here doc。如果您必须发送多个命令,则非常有用:

sqoop2 << 'EOF'
set server --host 1.2.3.4
EOF

(在上面,您可以在结束heredoc的EOF标记之前发出任意数量的命令,然后 shell 会将所有命令作为其标准输入发送到程序)sqoop2

于 2014-07-27T16:19:37.080 回答
0

用于expect(1)编写交互式程序脚本。

于 2014-07-27T15:49:13.003 回答