我试图运行以下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}'

我从命令行得到答案。

我的脚本在做什么错?

干杯,

最佳答案

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

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

10-06 03:45