Мне нужно использовать команду 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

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

1 ответ1

6

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

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'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .