概述
在Linux系统中,输入重定向是一种将命令的标准输入从文件或其他命令的输出中获取的技术。输入重定向通常使用以下符号:
1. < 符号
< 符号用于将文件的内容作为命令的标准输入。
示例:
cat < file.txt
这个命令会将 file.txt 文件的内容作为 cat 命令的输入。
2. << 符号(Here Document)
<< 符号用于将多行文本作为命令的标准输入。通常用于脚本中。
示例:
cat << EOF
This is line 1
This is line 2
EOF
这个命令会将 EOF 之间的文本作为 cat 命令的输入。
3. <<< 符号(Here String)
<<< 符号用于将单行字符串作为命令的标准输入。
示例:
bc <<< "2 + 2"
这个命令会将 2 + 2 作为 bc 命令的输入,并计算结果。
4. | 符号(管道)
虽然 | 符号通常用于输出重定向,但它也可以用于输入重定向。它将前一个命令的输出作为后一个命令的输入。
示例:
cat file.txt | grep "keyword"
这个命令会将 file.txt 的内容通过管道传递给 grep 命令,并搜索包含 keyword 的行。
5. /dev/null
/dev/null 是一个特殊的文件,用于丢弃输入或输出。
示例:
cat < /dev/null
这个命令会从 /dev/null 读取输入,但由于 /dev/null 是空文件,所以不会有任何输出。
6. 组合使用
输入重定向可以与其他重定向符号组合使用,以实现更复杂的操作。
示例:
command1 < input.txt | command2 > output.txt
这个命令会将 input.txt 的内容作为 command1 的输入,然后将 command1 的输出通过管道传递给 command2,最后将 command2 的输出重定向到 output.txt 文件中。
总结
输入重定向是Linux中非常有用的工具,它允许你灵活地控制命令的输入源。通过结合不同的重定向符号,你可以实现各种复杂的操作。
实践
command < input.txt 命令
我们现在有以下文件:
如图,其中有一个 20241015.txt,我们使用输出重定向,将其中的内容输出给 cat 命令,即执行:“cat < 20241015.txt”。
如图,执行完 cat < 20241015.txt 命令后,输出重定向将文本文件中的内容输出给了 cat,其效果同 cat 20241015.txt 。
command << string 命令
<< 符号用于将多行文本作为命令的标准输入。当遇到 string 时,中断输入。
在此,我们将 123 作为中断输入的字符串,然后输入多组文本,使用 cat 命令作为 command 输出文本:
如图,可见,当遇到 123 就中断了输入,cat 命令输出了其中输入的多行文本。
command <<< string 命令
<<< 符号用于将单行字符串作为命令的标准输入。
在此,我们使用 cat 命令输出一行字符串,即 cat <<< "123456789":
领取专属 10元无门槛券
私享最新 技术干货