我不想手动写入文件,所以我编写了一个 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 标签是否带引号,有两种略有不同的行为:
未加引号的标签:内容是在通常的 shell 扩展之后写入的
引用标签:此处文档的内容将按字面意思处理,无需通常的 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 命令。