Есть много способов игнорировать детали после пробелов (awk, cut, sed может выполнить работу), и даже предупредить об этом:
#!/bin/bash
echo "Input filename:"
read input
filename=$(echo $input | awk '{ print $1 }')
echo "Filename entered is: $filename"
[ "${filename}" != "${input}" ] && echo "(warning: parts after spaces were ignored)"
Также, используя read удобно, вы можете непосредственно прочитать то, что вы хотите:
read filename garbage
Вы можете рассмотреть возможность преобразования пробелов в подчеркивания (или оставить пробелы как часть имени файла, например windows guys ...):
read input
filename=$(echo $input | tr ' ' '_')
БЗ