команда cat с переменной, которая имеет пробелы

2201
prosseek

Мне нужно использовать catкоманду для отображения содержимого файла, а в имени файла есть пробелы: «встроенная доска link.rtf».

Я назначаю имя файла с помощью переменной:, I="embedded board link.rtf"но когда я использую cat $I, у меня появляется это сообщение об ошибке.

wireless-10-146-35-118 Desktop> cat $I cat: embedded: No such file or directory cat: board: No such file or directory cat: link.rtf: No such file or directory 

Что может быть не так?

0

1 ответ на вопрос

6
Attie

Вы также должны заключить в кавычки переменную:

I="embedded board link.rtf" cat "$I" 

Это потому, что оболочка сначала развернет все переменные, а затем проанализирует команду:

  1. cat $1
  2. cat embedded board link.rtf

Когда вы действительно имели в виду следующее:

  1. cat "$1"
  2. cat "embedded board link.rtf"

Обратите внимание, что во bashмногих других оболочках переменные внутри одинарных кавычек расширяться не будут:

  1. cat '$1'
  2. cat '$1'

Похожие вопросы