LED*_*tom 34 linux unix administrator
我是 Linux 管理员的新手,在学习 GDB 来调试我的代码时,我需要创建一个input.txt文件供我的程序读取。我知道重定向符号,例如>,>>和<,也没有找到有关信息<<,因为它忽略它通过谷歌。
什么是<<EOF下面怎么办?
cat >input.txt <<EOF
Run Code Online (Sandbox Code Playgroud)
小智 35
Shell 输入/输出重定向的摘录:
Here 文档
here 文档用于将输入重定向到交互式 shell 脚本或程序。通过为交互式程序或交互式 shell 脚本提供所需的输入,我们可以在没有用户操作的情况下在 shell 脚本中运行交互式程序。
- here 文档的一般形式是:
Run Code Online (Sandbox Code Playgroud) 在这里,shell 将command << delimiter document delimiter<<运算符解释为读取输入的指令,直到找到包含指定分隔符的行。然后,所有输入行直到包含分隔符的行都被送入命令的标准输入中。
分隔符告诉 shell,here 文档已经完成。没有它,shell 将永远读取输入。分隔符必须是不包含空格或制表符的单个单词。- 以下是
wc -l用于计算总行数的命令的输入:Run Code Online (Sandbox Code Playgroud)$wc -l << EOF This is a simple lookup program for good (and bad) restaurants in Cape Town. EOF 3
- 您可以使用此处的文档使用脚本打印多行:
Run Code Online (Sandbox Code Playgroud) 这将产生:#!/bin/sh cat << EOF This is a simple lookup program for good (and bad) restaurants in Cape Town. EOFRun Code Online (Sandbox Code Playgroud)This is a simple lookup program for good (and bad) restaurants in Cape Town.
- 这将运行与
vi文本编辑器的会话并将输入保存在文件中test.txt:Run Code Online (Sandbox Code Playgroud)#!/bin/sh filename=test.txt vi $filename <<EndOfCommands i This file was created automatically from a shell script ^[ ZZ EndOfCommands
- 如果您使用
vimas运行此脚本vi,那么您可能会看到如下输出:Run Code Online (Sandbox Code Playgroud) 运行脚本后,您应该会看到以下内容添加到$ sh test.sh Vim: Warning: Input is not from a terminaltest.txt:Run Code Online (Sandbox Code Playgroud)$ cat test.txt This file was created automatically from a shell script
| 归档时间: |
|
| 查看次数: |
142632 次 |
| 最近记录: |