从scala代码执行的Shell命令无法识别bash别名

时间:2015-08-17 18:09:38

标签: linux bash sbt

我有一个scala文件,它执行类似于此的hdfs命令:

hdfs dfs -mkdir /test/

当我在shell中运行它时,该命令运行正常,因为我在.bashrc文件中设置了以下别名:

alias hdfs='/usr/local/hadoop-2.7.0/bin/hdfs'

...但是当我使用SBT构建在我的Scala代码中运行shell命令的代码时,我收到以下错误:

 java.io.IOException: Cannot run program "hdfs": error=2, No such file or directory

是否有方法可以识别别名?我无法更改代码,因为我希望程序在安装了hdfs的任何系统上运行,无论目录如何,唯一应该更改的是别名。

更多信息: 我在带有hadoop的docker镜像中运行我的测试(不应该改变任何东西),图像运行一个脚本,每次容器启动时执行以下两行:

source ~/.bashrc         # To get the alias
shopt -s expand_aliases  # To allow alias expansion in your script

1 个答案:

答案 0 :(得分:1)

修复了我的.bashrc文件中的以下行

export PATH=$PATH:/usr/local/hadoop/bin/