我正在尝试自动安装Sqoop 2
。假设sqoop-server
安装在IP地址1.2.3.4
中。
在sqoop-client
我想设置该服务器的IP。手动,这样做,我会:
sqoop2
sqoop:000> set server --host 1.2.3.4
我怎样才能使用shell的pipe
和echo
来实现这一目标?我试过了
set server --host 1.2.3.4 | sqoop2
但它没有奏效。
答案 0 :(得分:3)
许多交互式程序从 stdin 读取。假设sqoop2
就是这种情况,您可以按照建议使用管道。但是你忘了使用echo
命令:
echo set server --host 1.2.3.4 | sqoop2
上面的代码将echo
的输出设置为sqoop2
的输入。
另一种选择是使用here string
sqoop2 <<< "set server --host 1.2.3.4"
第三种选择是使用here doc。如果你必须发送多个命令非常有用:
sqoop2 << 'EOF'
set server --host 1.2.3.4
EOF
(在上面,您可以在结束 heredoc 的 EOF 标记之前发出任意数量的命令,然后shell会将所有命令发送到程序sqoop2
作为标准输入)
答案 1 :(得分:0)
使用expect(1)
编写交互式程序脚本。