从 Shell 脚本创建、写入和保存文件

从 Shell 脚本创建、写入和保存文件

我不想手动写入文件,所以我编写了一个 shell 脚本。有没有办法自动写入并保存文件,而无需用户按下键盘?

sudo nano blah
#write stuff to file
#save file
#continue

^ 这将位于 *.sh 文件中

或者是否有其他方法可以在脚本中创建一个简单的文本文件?

答案1

对于更复杂的命令序列,你应该考虑使用cat带有这里的文件. 基本格式是

command > file << END_TEXT
some text here
more text here
END_TEXT

根据 END_TEXT 标签是否带引号,有两种略有不同的行为:

  1. 未加引号的标签:内容是在通常的 shell 扩展之后写入的

  2. 引用标签:此处文档的内容将按字面意思处理,无需通常的 shell 扩展

例如考虑以下脚本

#!/bin/bash

var1="VALUE 1"
var2="VALUE 2"

cat > file1 << EOF1
do some commands on "$var1" 
and/or "$var2"
EOF1

cat > file2 << "EOF2"
do some commands on "$var1" 
and/or "$var2"
EOF2

结果是

$ cat file1
do some commands on "VALUE 1" 
and/or "VALUE 2"

$ cat file2
do some commands on "$var1" 
and/or "$var2"

如果您要从脚本输出 shell 命令,则可能需要引用的形式。

答案2

无需使用编辑器即可完成此操作。

你可以用简单的 echo 命令将一些内容附加到文件中。例如

echo "Hello World" >> txt

将把“Hello world”附加到文件txt。如果该文件不存在,则会创建它。

或者如果文件可能已经存在而你想覆盖它

echo "Hello World" > txt

对于第一行:和

echo "I'm feeling good" >> txt
echo "how are you" >> txt 

对于后续行。

最简单的.sh脚本可能只包含一组 echo 命令。

相关内容