我正在寻找制作文件的完美方法。我想首先指定文件名我想指定该文件的文本内容。我想在一个控制台行中完成它。我不想重新输入文件名。理想的
答案1
只需将重定向放在命令之前即可:
>filename.txt printf '%s\n' "This is the first line" "This is the second line" 'This line has "double-quotes"' '' 'That fourth line is empty' '"I don'\''t think I can avoid using both types of quotes," she said.'
实际上,您可以将重定向放在命令中的任何位置,因此以下内容可能看起来“更自然”(尽管效果完全相同):
printf '%s\n' >filename.txt "This is the first line" "This is the second line" 'This line has "double-quotes"' '' 'That fourth line is empty' '"I don'\''t think I can avoid using both types of quotes," she said.'
答案2
定义你自己的函数,例如
function createFile() { echo "$2" > $1; }
然后调用它:
createFile myFile.txt "here the text content"
答案3
cat >filename <<'END'
contents contents
contents contents
END
这将调用该cat
命令,将其输出重定向到您要创建(或覆盖)的文件,并从由单词 分隔的带引号的多行here-document 重定向文件内容END
。
对于单行文本,您可以在以下位置使用此处字符串bash
:
cat >filename <<<"this is the contents"
如果只是将文本从剪贴板粘贴到文件中,请cat >filename
在命令行中使用,然后将数据粘贴到终端中并以Ctrl+D.