让beanshell和bashshell一起工作

不想你离开。 提交于 2019-12-01 00:17:27

beanshell可以很方便的操作Java类

bashshell可以亦可以很轻易的使用linux系统资源

要让Java和Linux在一起愉悦的工作,beanshell和bashshell的相互调用,很有必要实现


beanshell调用bashshell很简单,exec就可以了

而bashshell里使用beanshell却很难找到好的方案

google一大通,参考网上现有的方案,目前想到以下三种解决办法


1,直接通过hashlang(#!)指定 java 调用 bsh.Interpreter

root@mo :~/tmp# cat test.bsh
#!/opt/jdk/bin/java bsh.Interpreter
print("aaa");


2, 利用系统环境变量,在 /root/.bashrc下面做如下修改

export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/bsh_2.0b4.jar
export bsh="java bsh.Interpreter"

主要是最后一句,这样使用bsh直接在shell下敲 $bsh就可以了 很方便


3,利用expect,交互

root@mo :~/tmp# echo $bsh > /usr/bin/bsh
root@mo :~/tmp# chmod 777 /usr/bin/bsh
root@mo :~/tmp# cat tt
#!/usr/bin/expect
spawn bsh
expect "%"
send "print(\"a\");\r"
interact


目前想到的办法就这三个,虽然比较丑陋,但也基本能使了,先凑合着用。。


AnyWay

If you do better, Please submit your command here.

Thanks!





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!