在Linux的Bash中,这里的文件和这里的字符串

在Linux的Bash中,这里的文件和这里的字符串

简介

Bash是一种Unix外壳和命令语言,通常在Linux和其他基于Unix的操作系统中使用。它是一个强大的工具,用于自动化任务、管理系统配置和在基于Unix的系统上执行各种其他操作。Bash提供了一些功能,使其成为用户的一个强大而灵活的工具,包括支持” here documents “和” here strings “。”

什么是 “这里的文件”

这里的文档”,也被称为 “这里的文档”,是一种特殊的输入重定向,允许用户为一个命令指定多行输入。这对于指定长的文本块或脚本代码作为一个命令的输入特别有用。

在这里,文件是用<<操作符指定的,后面有一个分隔符,可以是任何字符串。然后在分界符之后指定输入行,并以只包含分界符的一行作为结束,后面是分号(;)。

$ cat <<EOF
This is line 1 of the input.
This is line 2 of the input.
This is line 3 of the input.
EOF

在这个例子中,定界符是 “EOF”(代表 “文件的结束”)。输入的行数在定界符和只包含定界符的终止行之间。当命令被执行时,cat命令会读取输入内容并显示在屏幕上。

“Here文档 “也可以用来为接受脚本代码作为输入的命令指定输入,例如awk或perl。例如,下面的命令使用here文档为awk命令指定一个脚本–

$ awk '{print $1}' <<EOF
This is line 1 of the input.
This is line 2 of the input.
This is line 3 of the input.
EOF

在这个例子中,awk命令将读取输入并执行这里文件中指定的脚本,它只是打印每行输入的第一个字段(如列)。

什么是Here字符串?

here字符串 “类似于here文档,但它是用单引号(’)而不是双小号(<<)符号来指定的。和 “这里的文档 “一样,这里的字符串允许用户为一个命令指定多行输入。然而,这里的字符串被解释为一个单一的字符串,而不是多行的输入。

“这里的字符串 “是用单引号和分隔符来指定的,分隔符可以是任何字符串。然后在定界符之后指定字符串,并以只包含定界符的行作为结束,后面是一个单引号。例如,下面的命令使用 here 字符串来指定一个多行字符串作为 echo 命令的输入 –

$ echo 'This is a string
that spans multiple
lines.'

在这个例子中,定界符是单引号本身。在定界符和只包含定界符的终止行之间指定了字符串。当命令被执行时,echo命令会读取输入的内容并将其作为一个单一的字符串显示在屏幕上。

Here字符串也可以用来为接受脚本代码作为输入的命令指定输入,例如awk或perl。例如,下面的命令使用here字符串来指定awk命令的脚本–

$ awk '{print $1}' 'BEGIN {FS=":"}
{print $1}'

在这个例子中,awk命令将读取输入并执行这里字符串中指定的脚本,它将字段分隔符设置为冒号(:),然后打印出每行输入的第一个字段。

使用 “这里的文件 “和 “这里的字符串”

在使用Bash时,”这里的文件 “和 “这里的字符串 “在各种情况下都很有用。一些常见的使用情况包括 –

  • 指定长的文本或脚本代码块作为命令的输入。

  • 创建脚本或命令,通过把它们分成多行,更容易阅读和维护。

  • 简化了为需要多行输入的命令指定输入的过程。

下面是一个脚本的例子,它使用 “here document “来创建一个新文件并向其中写入一些文本

#!/bin/bash
# Create a new file called "output.txt"
cat > output.txt <<EOF
This is line 1 of the output.
This is line 2 of the output.
This is line 3 of the output.
EOF

这个脚本使用带有>操作符的cat命令,将输出重定向到一个名为 “output.txt “的新文件。然后,这里的文件被用来指定应该被写入该文件的文本。当脚本被执行时,cat命令会将here文件中指定的文本写到 “output.txt “文件中。

#!/bin/bash
# Search for a pattern in a multi-line string
grep 'pattern' 'line 1
line 2
line 3'

在这个例子中,grep命令在这里指定的多行字符串中搜索 “pattern “这个字符串。如果找到该字符串,grep命令将把匹配的一行或几行打印到屏幕上。

结论

“这里的文件 “和 “这里的字符串 “是Bash中有用的功能,允许用户为一个命令指定多行输入。它们可以用来指定长的文本块或脚本代码作为输入,或者用来简化为需要多行输入的命令指定输入的过程。通过使用here文档和here字符串,用户可以创建更容易阅读和维护的脚本和命令,并且可以更有效地实现基于Unix系统的各种任务的自动化。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程