簡體   English   中英

從Scala代碼執行的Shell命令無法識別bash別名

[英]Shell command executed from scala code not recognizing bash alias

我有一個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

在我的.bashrc文件中的以下行已修復

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM