コマンドの置き換え

コマンドの置き換え

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*"

おすすめ記事