С точки зрения ООП, база данных как в Объекте/Агенте, в большей системе и это должно быть ответственно за себя. Это включает необходимую потребность проверить вход.
Вы пытались просто передать строковую переменную в цикл for
? Bash, например, автоматически разбивает пробелы.
sentence="This is a sentence."
for word in $sentence
do
echo $word
done
This
is
a
sentence.
$ echo "This is a sentence." | tr -s " " "\012"
This
is
a
sentence.
For checking for spaces, use grep:
$ echo "This is a sentence." | grep " " > /dev/null
$ echo $?
0
$ echo "Thisisasentence." | grep " " > /dev/null
$ echo $?
1
Для проверки пробелов только с помощью bash:
[[ "$str" = "${str% *}" ]] && echo "no spaces" || echo "has spaces"
Просто используйте встроенный "набор" оболочек. Например,
set $text
После этого отдельные слова в $ text будут в $ 1, $ 2, $ 3 и т. Д. Для надежности обычно делают
set -- junk $text shift
для обработки случая, когда $ text пусто или начинается с тире. Например:
text="This is a test" set -- junk $text shift for word; do echo "[$word]" done
Это напечатает
[This] [is] [a] [test]