命令替换

命令替换

我想在 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*"

相关内容