让beanshell和bashshell一块儿工做

beanshell能够很方便的操做Java类 java

bashshell能够亦能够很轻易的使用linux系统资源 linux

要让Java和Linux在一块儿愉悦的工做,beanshell和bashshell的相互调用,颇有必要实现 shell


beanshell调用bashshell很简单,exec就能够了 bash

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

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


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

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


2, 利用系统环境变量,在 /root/.bashrc下面作以下修改 get

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" hash

主要是最后一句,这样使用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!

相关文章
相关标签/搜索