在脚本期间写入文件
Writing to a file during a script
我需要在脚本中间创建和写入一个文件。有没有办法做到这一点?通常,要创建和写入文件,我会使用 cat >file name,然后写入我需要的内容,然后 ctrl+d 保存并退出。但是,我无法在脚本中使用 ctrl+d 来使用 cat >。我会用什么?
您可以使用:
echo "file content" > file.txt
或者,如果您想在写入文件时查看内容:
echo "file content" | tee file.txt
有几个选项。例如
>file_name
确保您之后有一个名为 file_name
的 空 文件。如果你改写
touch file_name
那么file_name
只有在之前不存在的情况下才会生成。如果它存在,它会更新它的时间戳。
你也可以做一个
[ -f file_name ] || touch file_name
这将生成 file_name
,如果它不存在,但如果文件已经存在则保持时间戳不变。
您还可以使用脚本中包含的信息填充文件,方法是使用 so-called here-document:
cat >file_name <<'END_OF_THE_WORLD'
Hello
$PATH
Goodbye
END_OF_THE_WORLD
单引号确保您的文件确实包含文字字符串 $PATH
,即没有对文本执行任何参数扩展。
我需要在脚本中间创建和写入一个文件。有没有办法做到这一点?通常,要创建和写入文件,我会使用 cat >file name,然后写入我需要的内容,然后 ctrl+d 保存并退出。但是,我无法在脚本中使用 ctrl+d 来使用 cat >。我会用什么?
您可以使用:
echo "file content" > file.txt
或者,如果您想在写入文件时查看内容:
echo "file content" | tee file.txt
有几个选项。例如
>file_name
确保您之后有一个名为 file_name
的 空 文件。如果你改写
touch file_name
那么file_name
只有在之前不存在的情况下才会生成。如果它存在,它会更新它的时间戳。
你也可以做一个
[ -f file_name ] || touch file_name
这将生成 file_name
,如果它不存在,但如果文件已经存在则保持时间戳不变。
您还可以使用脚本中包含的信息填充文件,方法是使用 so-called here-document:
cat >file_name <<'END_OF_THE_WORLD'
Hello
$PATH
Goodbye
END_OF_THE_WORLD
单引号确保您的文件确实包含文字字符串 $PATH
,即没有对文本执行任何参数扩展。