我想将几行代码传递给WebSphere配置文件。
这是我的尝试:
# ./wsadmin.sh -lang jython -c 'print("Hello")
> print("World!")'
这打印出一个回复:
WAS7209I: Connected to process"<my profile name>" on node <node name> using SOAP connector; The type of process is: UnManagedProcess
Hello
请注意,它似乎只是忽略了同一行代码。
当我在Python中尝试相同的东西时,它运行正常:
# python -c 'print("Hello")
> print("World!")
打印:
Hello
World!
我在CentOS 7上使用WebSphere 8.5版。
注意:在得到Ram Vennam的答案之后,我在超级用户身上发布了一个相同的问题:https://superuser.com/q/939746/240375 - 这就是我最终得到答案的地方。
答案 0 :(得分:2)
您可以使用分号:
./wsadmin.sh -lang jython -c 'print("Hello");print("World!")'
或者,脚本文件可以使用-f选项和wsadmin一起作为输入。
$ wsadmin.sh -f your_script_file
答案 1 :(得分:2)
Edward's Answer on SuperUser和bkail's comment on Ram Vennam's Answer here几乎同时提供了相同的解决方案,但当我问他们时,他们都没有在这里发布答案,所以我发布在这里我有一个正确的答案接受。
$ ./wsadmin.sh -lang jython -f <(echo 'print("Hello")
> print("World")')
完美无缺。它允许你放入行返回。它尊重缩进,所以你可以有for循环并定义函数和类以及其他需要缩进行的东西。
一个额外的好处,我将分享您如何在代码中转义单引号:
'\''
第一个引号关闭前面的字符串。 \'
将单引号文字放入。最后一个引号开始下一个字符串。 Bash自动将三者连接在一起形成一个连续的字符串,其中间有一个引号。因此,如果我想使用单引号而不是上面的双引号,它将如下所示:
$ ./wsadmin.sh -lang jython -f <(echo 'print('\''Hello'\'')
> print('\''World'\'')')