На самом деле, не доверяйте аргументам ... они могут содержать пробелы или другие специальные метасимволы оболочки. Двойные кавычки - ваши друзья в сценариях оболочки.
shift; #eat $1
for arg in "$@"
do
echo "$arg"
done
При двойных кавычках «$ @» использует специальную магию, чтобы гарантировать сохранение слов. Гораздо лучше, чем $ *. «$ *» обрабатывает все аргументы одновременно.
Двойные кавычки - не идеальное решение, просто лучшее, простое.