在Shell脚本中创建包含一些内容的文件
我是Shell Scripting的新手,我想在脚本中创建一个新文件,然后想要添加内容然后关闭它。 它不应该接受用户的参数。 路径和内容中的所有内容都是预定义的。 我该怎么做?
只需使用输出重定向。 例如
#!/bin/bash echo "some file content" > /path/to/outputfile
>
将把echo
的stdout
提供的所有stdin
写入文件outputfile
。
或者,您也可以使用tee
和管道。 例如
echo "some file content" | tee outputfile
请注意,任何示例都将覆盖现有的输出文件。
如果需要附加到当前存在的文件,请使用>>
而不是>
或tee -a
。
如果您不接受此行中的用户输入,则没有用户输入可以更改此处的行为。
我认为使用here doc在脚本中创建新文件是优越的。 它看起来更干净,我相信它鼓励可读性。
例如:
cat > filename <<- "EOF" file contents more contents EOF
<<-
的"-"
是可选的,允许在创建文件时剥离的选项卡式缩进。 "EOF"
周围的引号阻止“here doc”进行任何替换。