1

У меня есть небольшой скрипт bash, который выглядит примерно так:

#!/bin/sh
for f in ./*.txt
do
 f=$(basename $f)
 echo "Processing $f"
 scp somewhere
 mv $f done/`basename $f`
done

Это работает отлично, но как только не останется ни одного файла, он выдаст эту ошибку: *.txt: No such file or directory мне интересно, почему он входит в цикл и как я могу это сделать (без нового, если может быть?)

1 ответ1

1

Если нет файла *.txt , строка остается нерасширенной как есть, и цикл вводится. Чтобы предотвратить это, установите параметр nullglob .

shopt -s nullglob

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .