Игнорировать ошибку «Нет такого файла или каталога» при выполнении сценария bash - PullRequest
0 голосов
/ 18 января 2020

У меня есть сценарий bash, и я хочу игнорировать ошибку «Нет такого файла или каталога», когда папка пуста, поэтому сценарий может выполнить остальную часть кода.

#!/usr/bin/env bash

set -e

TEMP_HDFS=$1

mkdir -p Data_in

hdfs dfs -copyToLocal $TEMP_HDFS/input/files/*.csv Data_in/file.csv

Ответы [ 2 ]

0 голосов
/ 19 января 2020

Предполагая, что вы хотите, чтобы

hdfs dfs -copyToLocal $TEMP_HDFS/input/files/*.csv Data_in/file.csv

просто оценили как

hdfs dfs -copyToLocal Data_in/file.csv

, если в $TEMP_HDFS/input/files нет файлов CSV, добавьте это в начале вашего скрипта :

shopt +s nullglob

nullglob говорит bash вести себя разумно, когда шаблон глобуса ничего не находит.

0 голосов
/ 18 января 2020

Подтвердите и продолжите работу.

[ -d "Data_in" ] && echo "Directory Data_in exists." || mkdir -p Data_in

И если вы хотите игнорировать ошибку

Попробуйте перенаправить ваш STDERR на вывод, как показано ниже


hdfs dfs -copyToLocal $TEMP_HDFS/input/files/*.csv Data_in/file.csv 2> /dev/null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...