我正在尝试在正在运行的服务器中启动oracle lsnrctl。
这是我的命令(从主机服务器运行):
until [ ! -z `docker exec -it my_docker bash -c "lsnrctl start" | grep successfully`]; do echo "init_demo: waiting for TNS listener to start";sleep 0.1;done
输出是无限循环:
init_demo: waiting for TNS listener to start
当我尝试运行时(从主机服务器):
docker exec -it tr-db bash -c 'lsnrctl start'
我明白了:
bash: lsnrctl: command not found
但是,登录docker服务器后,我可以运行该命令,并获得预期的结果。
bash命令有什么问题?
稍后添加: 问题是路径问题。但是,我仍然有整个命令的问题。以下命令正在运行:
docker exec -it my_docker bash -c“/u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start”| grep成功
但是,当我运行以下命令时:
直到 [ ! -z docker exec -it my_docker bash -c "/u01/app/oracle/product/11.2.0/xe/bin/lsnrctl start" | grep successfully
];回显“init_demo:等待TNS监听器启动”;睡眠0.1;完成
我得到: bash:[:缺少`]'