java调用shell脚本返回值问题,求助!!!!!!!!

踩单车的老爷爷 发布于 2016/02/23 00:56
阅读 379
收藏 0

刚搞shell脚本这块,现在遇到个问题,望知道的大神帮忙解答下,感谢啊!

问题是这样的:

java后台调用shell脚本,脚本作用是解析数据库用户名(dbuserName)和数据库密码(dbuserPwd),我打算让dbuserName和dbuserPwd拼接后让java后台接收:

shell脚本关键代码:echo $dbuserName"|"$dbuserPwd

java后台关键代码:Process proc = Runtime.getRuntime().exec(shell);  

但问题出现了,java后台只获取到了$dbuserName和“|”,dbuserPwd却为空,直接执行脚本的话,打印拼接的字符串是正常的,弄了很长时间了,没找到什么原因,求大神帮忙,不胜感激!

PS:本来数据库用户名和密码是放在配置文件中,可以在java后台通过读取配置文件来解析的,现在由于需求整改,root用户权限过大,另增用户 ,使用sudo方案,导致了权限问题无法读取配置文件,因此就将解析工作放在了shell脚本中。


加载中
0
爱生活_爱JAVA
爱生活_爱JAVA
使用 sshxcute 这个jar包.很方便
爱生活_爱JAVA
爱生活_爱JAVA
回复 @happy小码农 : 应该是环境变量没有生效,在你当前这个通道中使用命令source .bashrc;echo@duuserName ...这样的试试吧
踩单车的老爷爷
踩单车的老爷爷
在java中使用该方法吗?具体怎么得呢?返回值问题知道什么原因吗?
0
beyondforever68
beyondforever68
会不会|被当作运算符了,换成_呢
踩单车的老爷爷
踩单车的老爷爷
感谢你的解答,找到原因了,是密码在log中屏蔽打印了
返回顶部
顶部