Чтение пространства в качестве входного файла в сценарии оболочки

Как я могу предоставить пространство " " качестве входного файла в сценарии оболочки?

Пример:

 echo " Enter date for grep... Ex: Oct 6 [***Double space is important for single date***] (or) Oct 12 " read mdate echo $mdate 

Я получаю вывод как Oct 6 но я хочу Oct 6 .

One Solution collect form web for “Чтение пространства в качестве входного файла в сценарии оболочки”

У вас уже есть Oct 6 в $mdate , ваша проблема в том, что вы расширяете его при печати. Всегда используйте двойные кавычки вокруг переменных замещений . Кроме того, чтобы сохранить ведущие и завершающие пробелы (которые удаляются путем read ), установите IFS в пустую строку.

 IFS= read -r mdate echo "$mdate" 

Опция -r ( r aw) для чтения указывает на то, что она не обрабатывает обратные косые черты специально, что вы хотите большую часть времени (но это не проблема здесь).

  • Сценарий оболочки для увеличения количества записей
  • Как использовать multiline как group-separator в grep?
  • Другие альтернативы команды столбца
  • переименовать несколько файлов в нескольких каталогах с помощью сценариев Bash
  • возможно ли добавить запятую в этот SQL?
  • Какие ситуации существуют, когда переменные Bash не должны быть двойными кавычками?
  • Ручное выполнение CRON - Confused on params
  • Как закрепить файл и сохранить его в другом каталоге
  • Учитывая файл блочного устройства, как я могу перечислить все соответствующие разделы?
  • Как назначить {} переменной в find --exec
  • Почему не работает эта команда sudo mv с шаблоном?
  • Linux и Unix - лучшая ОС в мире.