带有空格的变量的 cat 命令

带有空格的变量的 cat 命令

我需要使用cat命令来显示文件的内容,并且文件名中有空格:“embedded board 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

您还必须引用该变量:

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

这是因为 shell 首先会扩展任何变量,然后解析命令:

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

当你真正想表达的是以下意思时:

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

请注意,在bash和许多其他 shell 中,单引号内的变量将不会被扩展:

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

相关内容