需要从Unix shell控制->;Python->&;返回

需要从Unix shell控制->;Python->&;返回,python,unix,wlst,Python,Unix,Wlst,有一个weblogic脚本test.sh,其代码如下 echo "Starting ...." java weblogic.WLST helloworld.py echo "Ending ..."The output after printing "Starting ...." 第二行代码提示输入以下消息 创建密钥文件可能会降低系统的安全性(如果存在) 创建后未保存在安全位置。你想去吗 创建密钥文件?是还是不是 然后我必须手动按下y或n,我希望将其自动设置为“y” 我例外,不需要用户干预

有一个weblogic脚本test.sh,其代码如下

echo "Starting   ...."
java weblogic.WLST helloworld.py
echo "Ending ..."The output after printing "Starting ...." 
第二行代码提示输入以下消息

创建密钥文件可能会降低系统的安全性(如果存在) 创建后未保存在安全位置。你想去吗 创建密钥文件?是还是不是

然后我必须手动按下y或n,我希望将其自动设置为“y”

我例外,不需要用户干预

我需要以某种方式自动传递“y”,以便脚本继续流动,而不是停止用户输入

下面是helloworld.py脚本的内容

connect(user1,p@ss,'t3://myhost:9999')
storeUserConfig(userConfigFile='userconfig.secure',userKeyFile='userkey.secure') 
disconnect() 
exit()

您能帮我吗?

您可以在python中作为子进程执行
java weblogic.WLST helloworld.py
命令。然后,您可以分析上述问题的输出,并通过
stdin.write('y\n')输入“y”

我们能为您提供哪些具体帮助?OP中提到:需要以某种方式自动传递“y”,以便脚本继续流动,而不是停止以供用户输入,因此控件应该在执行python后自动返回unix shell,这在当前情况下不会发生。需要的是从unixshell,那么您的解决方案会起作用吗?我不知道如何实现你的建议没有问题。我的意思是创建第二个python文件,将
helloworld.py
脚本作为子进程调用。有关子流程模块的详细信息,请参阅。然后,weblogic必须调用第二个脚本,而不是
helloworld.py
.k。。。我尝试了两个命令,但看起来都有问题。process=subprocess.call(['./helloworld.py','sys.argv[1]','sys.argv[2]'))output=process.stdin.write('y')……错误:调用WLST-Traceback(最里面的最后一个):文件“/tmp/call_helloworld.py”,第5行,在?NameError:subprocess您是否导入subprocess?如果我说“导入subprocess”,则会出现以下错误。ImportError:没有名为subprocess的模块