Выполнение hadoopfs в сценарии оболочки - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь запустить 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 голосов
/ 19 апреля 2019

Является ли имя файла буквально local-*.inprogress? Если это так, ваша проблема заключается в расширении подстановочного знака в скрипте. Добавьте двойные кавычки вокруг переменной и посмотрите, как это работает:

CURRENT_HDFS_PATH=`hadoopfs -ls -t -r "/$CLEAN_HDFS_PATH" | tail -1 | awk -F ' ' '{print $8}'`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...