讓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!

相關文章
相關標籤/搜索