изящная деградация для подстановки на терминале
-
22-09-2019 - |
Вопрос
Всякий раз, когда сопоставление с шаблоном glob завершается неудачно, вся работа останавливается.Например,
$ mv *.jpg *.png folder1 && blahblah
mv: cannot stat `*.jpg': No such file or directory
*.png не перемещается в папку 1 и бла-бла не запускается.
И приведенный ниже сценарий работает только для случая, когда оба .[A-z]* и * успешны.
#!/bin/bash
cd $1
du -sk .[A-z]* *| sort -rn | head
Как сделать так, чтобы подстановка завершалась корректно, отображая только предупреждения, но никогда не останавливая задание?
Решение
В Баше, shopt -s nullglob
позволит неудавшемуся glob расшириться до нуля без ошибок.
Другие советы
затем используйте цикл.ЦЕЛОВАТЬ
for files in jpg png
do
mv *.${files} /destination 2>/dev/null && do_something
done
Не связан с StackOverflow