Loading... # 基本用法 在Shell中,`cat EOF` 是一种常见的用法,用于将多行文本输入到文件或标准输出。EOF代表"End of File",它可以是任何你自定义的标识符,只要它在开始和结束时保持一致即可。 以下是`cat EOF`的常见用法: 1. 将文本输入到文件: ``` cat << EOF > file.txt This is line 1. This is line 2. EOF ``` 这将创建一个名为`file.txt`的文件,并将文本"This is line 1."和"This is line 2."写入文件中。 2. 将文本追加到文件: ``` cat << EOF >> file.txt This is line 3. This is line 4. EOF ``` 这将将文本"This is line 3."和"This is line 4."追加到`file.txt`文件的末尾。 3. 输出到标准输出: ``` cat << EOF This is line 5. This is line 6. EOF ``` 这将在终端窗口中打印文本"This is line 5."和"This is line 6."。 在这些用法中,`cat`命令用于将输入的文本输出到指定的文件或标准输出。`<<`是称为"Here Document"的重定向操作符,它告诉Shell将下面的文本作为输入,直到遇到与`EOF`匹配的标识符为止。在这个例子中,`EOF`是自定义的标识符,你可以用其他任何合法的标识符代替它。 # 关于Here Document功能,如何不解析内容中的$变量呢 如果你想在Here Document中使用文本内容而不对其中的`$`变量进行解析,可以使用单引号 `'` 来包裹Here Document的标识符(EOF)。在单引号中,Shell不会对变量进行扩展或解析。 以下是一个示例: ```shell cat << 'EOF' This is a line with a $variable. This is another line. EOF ``` 在上面的例子中,`<< 'EOF'` 使用单引号将Here Document的内容进行包裹。这样,`$variable` 不会被解析为变量,而会以字面值 `$variable` 的形式输出。 输出结果将是: ``` This is a line with a $variable. This is another line. ``` 通过使用单引号包裹Here Document的标识符,你可以确保其中的文本内容不会被Shell解析为变量。 最后修改:2023 年 11 月 02 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏