Человек, написавший этот сценарий, видимо, ошибочно решил, что статус выхода может представлять собой проблему безопасности. Если бы они назвали его parmError
или что-то подобное, это имело бы больше смысла.
Вот лучший способ сделать это, который также поддерживает пробелы и специальные символы:
#!/bin/bash
if test "$#" -ne 2
then
echo "Usage: $0 old_file_extension new_file_extension"
exit 2
fi
for filename in *."$1"
do
mv "$filename" "${filename%$1}$2"
done
Обратите внимание, что нет необходимости возвращать 0, так как он используется по умолчанию.