我需要使用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 首先会扩展任何变量,然后解析命令:
cat $1
cat embedded board link.rtf
当你真正想表达的是以下意思时:
cat "$1"
cat "embedded board link.rtf"
请注意,在bash
和许多其他 shell 中,单引号内的变量将不会被扩展:
cat '$1'
cat '$1'