У меня есть следующий оператор в сценарии bash:
ssh $host "cd /directory; for i in *$date.gz; do echo $i; done; exit"
Я ожидаю, что он напечатает имя каждого файла в каталоге, который заканчивается датой, и является файлом zip. Путем s sh -ing к хосту в командной строке и поиска в каталоге, я обнаружил, что должно быть 5 таких файлов. Однако этот скрипт возвращает 5 пустых строк. Я проверил, правильно ли была определена переменная $date
внутри кавычек (так было). Когда я заменил $i
на 'adf'
, скрипт напечатал
adf
adf
adf
adf
adf
Так что он правильно отфильтровывает эти 5 файлов, но просто не печатает их имена, а заменяет $i
в заявление с пустым (так что эта строка просто echo
). Почему это происходит, и как я могу заставить его печатать имена файлов? То же самое происходит, когда я запускаю эту строку в командной строке.