我想在变量中读取整个文件。 例如我的文件是。
文件名:Q.txt
My name is Naeem Rehmat.
I am a student of FAST university.
Now i am in 4th semester.
I am learning bash script.
I have this problem.
代码:
text=$(cat Q.txt)
echo $text
out put应该是这样的:
My name is Naeem Rehmat.
I am a student of FAST university.
Now i am in 4th semester.
I am learning bash script.
I have this problem.
答案 0 :(得分:0)
据推测,问题是您的空白不正确。使用双引号:
echo "$text"
当您在没有引号的情况下编写echo $text
时,bash会在生成命令之前计算字符串并执行所谓的“字段拆分”或“字拆分”。为了简化这种情况,假设text
是字符串foo bar
。 Bash将其分成两个“单词”,并将“foo”作为echo的第一个参数传递,将“bar”作为第二个参数传递。如果使用引号,bash只将一个参数传递给echo
,并且该参数包含多个将打印echo的空格。
请注意,在文本分配中使用引号(即text="$(cat Q.txt)"
)可能是一种很好的风格,尽管没有必要,因为字段拆分不会在变量赋值中出现。