如果你发现自己每天在终端中创建相似的文本,为什么不通过创建一个.txt模板脚本来简化此过程并节省时间呢?听起来是不是很有趣,那就启动一个终端,选择自己喜欢的文本编辑器,然后开始吧!
创建一个新的模板脚本
无论您喜欢哪种方式,创建一个新的bash脚本。我们正在终端中使用nano编辑器在主目录中的“linuxidc”文件夹中创建一个名为“ linuxidc.com.sh”的文件:
定义参数
在您喜欢的编辑器中打开文件。在最顶部,输入将其定义为bash脚本的典型介绍:
#!/bin/sh
为了使内容整洁清晰,请输入注释行,并在其后加上标题。
“后续操作”部分是我们要在模板中定义的一堆参数。模板脚本完成后,我们将能够向其提供这些参数以将其注入到文本中。
我们在注释行中输入“易盾网络”作为标题,如下所示:
#易盾网络
接下来,我们通过将它们映射到三个编号的变量来定义三个参数“ SITE”,“ AUTHOR”和“ CONTACT”:
SITE=$1
AUTHOR=$2
CONTACT=$3
您可以用相同的方式定义不同的(或更多的)参数。
创建您的模板
有了我们的模板参数之后,就该创建文本模板了。
和以前一样,我们以注释掉的行作为标题,如下所示:
#模板
这是我们要添加到模板中的内容:
- 我们将模板“夹在”两行之间。
- 第一行读取cat << EOF,并基本上声明了“接下来的所有内容(即:我们的实际模板),直到EOF出现之前,都应该被视为单个输入。”
- 第二行是EOF,在本例中是“codeword”,在这种情况下,它会中断cat命令循环并结束模板。
cat << EOF
$SITE欢迎您使用Bash生成的TEXT模板
作者 $AUTHOR.
与我联系 $CONTACT.
EOF
不过,一个更有用的模板可能会以电子邮件的形式出现。您可以定义“$NAME”和“$TASK”参数,然后为电子邮件创建一个模板,比如:
cat << EOF
您好 $NAME,
我只是想给你回个电话 $TASK.
你能告诉我有什么变化吗?
最好的问候,
我的名字
EOF
完成后,保存您的编辑(Ctrl+ O)并退出(Ctrl+ X)该程序。
接下来,使用以下命令使脚本可执行:
chmod u+x linuxidc.com.sh
这样,您将能够使用脚本本身的名称来创建新文档。
测试运行
使用定义的参数运行脚本。我们的测试运行如下所示:
./linuxidc.com.sh 易盾网络 linuxidc linuxidc@linuxidc.com
Bash 文本模板测试运行
第一部分是脚本的名称,第一个参数“ 易盾网络”,第二个参数“ linuxidc”,第三个参数“ linuxidc@linuxidc.com”。
请注意,我们可以使用下划线(_)将“易盾网络”一词组合在一起(比如:Linux_公社)。如果要使用空格,请添加引号(例如“ Linux 公社”)。
建立文件
准备好脚本后,由于重定向功能强大,您可以将其用作创建新文档的模板。
为此,请像在测试运行中一样,像以前一样运行它,但是在定义了参数之后,输入> path/to/file/linuxidc.com.txt。在我们的例子中,我们的命令如下所示:
./linuxidc.com.sh 易盾网络 linuxidc linuxidc@linuxidc.com > linuxidc.com.txt
这样,您可以指示模板将其结果输出到定义的文件而不是终端。至于实际结果,可以见下图。
看起来并不容易!
虽然看起来很复杂,但如果你按照上面的说明去做,其实很简单。如果您经常需要从相同的模板创建文本,那么它将非常有用。例如,您可以自动创建常规电子邮件、产品信息页面等,其中相同的单词或短语可能在同一文本中多次出现。
或者,您可以使用相同的方法来创建代码生成模板,例如,可以帮助您使用单个命令来设置包含整个网站结构的HTML文件或运行bash。启动过程中以root用户身份运行脚本。