在shell脚本中执行hadoopfs

时间:2019-04-18 15:52:18

标签: bash shell hadoop

我试图运行以下bash脚本:

#!/bin/bash
CURRENT_HDFS_PATH=`hadoopfs -ls -t -r /$CLEAN_HDFS_PATH | tail -1 | awk -F ' ' '{print $8}'`
echo "Here is the last (most current) file in the history folder to be downloaded=$CURRENT_HDFS_PATH"

以上完全不会产生任何结果。请注意,CLEAN_HDFS_PATH = / temp / local-*。inprogress

当我在命令行中使用以下命令时:

hadoopfs -ls -t -r  '/temp/local-*.inprogress' | tail -1 | awk -F ' ' '{print $8}'

我从命令行得到答案。

我的脚本在做什么错?

干杯

1 个答案:

答案 0 :(得分:0)

文件名实际上是local-*.inprogress吗?如果是这样,您的问题是脚本中的通配符扩展。在变量周围添加双引号,看看是否可以像这样工作:

CURRENT_HDFS_PATH=`hadoopfs -ls -t -r "/$CLEAN_HDFS_PATH" | tail -1 | awk -F ' ' '{print $8}'`