在Shell脚本中创建包含一些内容的文件

我是Shell Scripting的新手,我想在脚本中创建一个新文件,然后想要添加内容然后关闭它。 它不应该接受用户的参数。 路径和内容中的所有内容都是预定义的。 我该怎么做?

只需使用输出重定向。 例如

#!/bin/bash echo "some file content" > /path/to/outputfile 

>将把echostdout提供的所有stdin写入文件outputfile

或者,您也可以使用tee和管道。 例如

 echo "some file content" | tee outputfile 

请注意,任何示例都将覆盖现有的输出文件。

如果需要附加到当前存在的文件,请使用>>而不是>tee -a

如果您不接受此行中的用户输入,则没有用户输入可以更改此处的行为。

我认为使用here doc在脚本中创建新文件是优越的。 它看起来更干净,我相信它鼓励可读性。

例如:

 cat > filename <<- "EOF" file contents more contents EOF 

<<-"-"是可选的,允许在创建文件时剥离的选项卡式缩进。 "EOF"周围的引号阻止“here doc”进行任何替换。