명령 대체

명령 대체

SUSE Enterprise Linux에서 먼저 문자열(날짜를 나타냄)을 요청한 다음 디렉터리에서 파일 이름에 해당 문자열이 있는 모든 파일을 검색하는 스크립트를 만들고 싶습니다. 입력이 비어 있으면 오늘 날짜를 사용해야 합니다.

나는 지금 이것을 가지고 있습니다 :

read -p "Send files from date (MM-DD-YYYY) : " fromdate
if [[ -z ${fromdate// } ]]
then
    echo "Empty input"
    fromdate=$(date +%m-%d-%Y)
fi
echo "Input: $fromdate"
cd /path/to/directory
while IFS= read -r -d '' file ; do
echo "$file"
done < <(find . -maxdepth 1 -name "*$fromdate*" -print0)

날짜를 입력하면 정상적으로 작동합니다. 빈 입력의 경우 오류가 발생합니다.

fromdate: command not found

입력은 비어 있고 모든 파일이 표시됩니다. 내 실수는 무엇입니까? "let" 명령을 사용해야 합니까?

답변1

이것은 나에게 효과적이었습니다 (그러나 CentOS 7.1에서는). 내가 놓친 게 무엇입니까?

read -p "Send files from date (MM-DD-YYYY) : " fromdate
if [[ -z ${fromdate// } ]]
then
    echo "Empty input"
    fromdate=$(date +%m-%d-%Y)
fi
echo "Input: $fromdate"

find /path/to/directory -maxdepth 1 -name "*$fromdate*"

관련 정보