系统相关
首页 > 系统相关> > linux-将变量从Jython(wsadmin)传递到shell脚本

linux-将变量从Jython(wsadmin)传递到shell脚本

作者:互联网

我试图将使用wsadmin.sh调用的Jython脚本从WebSphere检索的值传递给我的调用程序外壳程序脚本中的变量.

调用方外壳程序脚本(getValue.sh)将具有:

#!/bin/sh

/opt/ibm/WebSphere/AppServerV70/bin/wsadmin.sh -lang jython -conntype SOAP -f /home/user/Jython.py

exit 0

Jython脚本(Jython.py)将具有:

cellName = AdminControl.getCell()
return cellName

如何将cellName的值存储到我的shell脚本中的变量中,例如CELL_NAME,可以这样使用:

echo "Cell Name is: " ${CELL_NAME}

这个版本的Jython脚本比我实际使用的脚本简单得多,但是我认为概念是相同的.

如果我在Jython脚本中使用了很多函数,是否可以将其中一个值传递给我的Shell脚本?即

def getValue1():
     value1 = "1"
     return value1

def getValue2():
     value2 = "2"
     return value2

def getValue3():
     value3 = "3"
     return value3

print getValue1()
print getValue2()
print getValue3()

我有一种方法可以将多个值存储到不同的Shell脚本变量中?即

echo "Value #1: " ${VALUE_ONE}
echo "Value #2: " ${VALUE_TWO}
echo "Value #3: " ${VALUE_THREE}

…这样,我可以运行一个Jython脚本,该脚本将检索多个值,并在我的shell脚本中使用这些多个值进行进一步处理.

感谢您提供任何帮助.

解决方法:

谢谢你,马特.你让我走上了正轨.通过在命令中添加“ | tail -1”,我可以实现所需的功能.您可能已经知道wsadmin SOAP连接总是如何显示出来的:

WASX7209I: Connected to process "dmgr" on node labCellManager01 using SOAP connector;  The type of process is: DeploymentManager

…因此,我不得不找到一种方法,仅将屏幕输出的最后一部分分配给我的变量,因此使用了“ tail -1”.

该命令变为:

result=`/opt/ibm/WebSphere/AppServerV70/bin/wsadmin.sh -lang jython -conntype SOAP -f /home/user/Jython.py | tail -1`

使用它时,您必须注意在Jython脚本中屏幕上要打印的内容,因为只有最后的打印将分配给该变量.您可以使用tail命令调整所需的内容.

谢谢您的帮助

标签:shell,jython,linux,wsadmin
来源: https://codeday.me/bug/20191028/1953758.html