我有一个名为content.txt
的文件:
$ cat content.txt
输出:
*
1
2
在同一目录中,我有一个bash文件:read.sh
来阅读content.txt
的内容
$ cat read.sh
输出:
content=`cat content.txt`
echo $content
我们可以看到*
中有content.txt
。所以,当我运行reah.sh
时:
$ sh read.sh
输出:
content.txt read.sh 1 2
似乎已经解析了*
。
如何获取content.txt
的内容?任何帮助都会很棒。
答案 0 :(得分:3)
*
字符是通配符的通配符,可扩展为当前目录中的文件名,如果您希望仅echo
字符,则必须引用或转义。
您可以使用read
内置命令从文件中读取。
while read content; do
echo "$content"
done < content.txt
答案 1 :(得分:0)
似乎变量在echo
时展开。所以只需将read.sh
更改为:
content=`cat content.txt`
echo "$content"
然后我得到了我想要的东西。谢谢,大家。
http://www.shellcheck.net/这个,可以查看shell脚本并给出一些建议。