下面的 Perl 脚本(my.pl)可以从命令行参数指定的文件或者标准输入(STDIN)读取:while (<>) { print($_); } perl my.pl 会从标准输入读取,而 perl my.pl a.txt 会从文件 a.txt 中读取。这非常方便。 Bash 中有类似的功能吗?
只需测试脚本的参数数量,并测试第一个参数($1)是否为文件。如果为假,则使用标准输入 - : #!/bin/bash [ $# -ge 1 -a -f "$1" ] && input="$1" || input="-" cat $input 请参见此问题。
cat
命令的输出将被放置在命令行中。命令行有最大尺寸限制。此外,它不会逐行读取,而是逐个单词读取。 - Notinlist