如何使用Bash测试hdfs文件是否存在

时间:2019-02-04 20:52:19

标签: linux hadoop hdfs

我想编写一个Bash脚本来检查某个位置是否存在文件。我有几个正在使用的变量,到目前为止可以正常工作:

if hdfs dfs -test -e $NIFI/cust_accounts/$CURRPART; then echo $NIFI/cust_accounts/$CURRPART partition is current on HDFS; fi

但是,我真的很希望能够返回“ else”语句。含义 “如果文件存在,则123其他(如果不存在)999”。

有人可以帮助我构造一个“其他”陈述吗?谢谢!

1 个答案:

答案 0 :(得分:0)

请记住,[(实际上)只是另一个命令。因此,在您可能习惯了if [ ... ]; then ... ; else ... ; fi的情况下,所拥有的实际上并没有什么不同。将[ ... ]部分替换为对hdfs的调用,最终得到相同的语法:

if hdfs dfs -test -e $NIFI/cust_accounts/$CURRPART
then
  echo $NIFI/cust_accounts/$CURRPART partition is current on HDFS
else
  echo $NIFI/cust_accounts/$CURRPART partition is NOT current on HDFS
fi