在shell脚本中执行hadoopfs

3lxsmp7m  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(434)

我正在尝试运行以下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\u hdfs\u path=/temp/local-*.inprogress
在命令行中使用以下命令时:

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

我从命令行得到答案。
我在剧本里做错了什么?
干杯,

oxf4rvwz

oxf4rvwz1#

文件名是否按字面意思 local-*.inprogress ? 如果是这样,您的问题是脚本中的通配符扩展。在变量周围加上双引号,看看效果如何:

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

相关问题