以下 Perl 脚本 (my.pl
) 可以从命令行参数中的文件或 standard input 中读取(标准输入):
while (<>) {
print($_);
}
perl my.pl
将从标准输入读取,而 perl my.pl a.txt
将从 a.txt
读取。这非常方便。
Bash 中是否有等效项?
最佳答案
如果使用文件名作为第一个参数 $1
调用脚本,则以下解决方案从文件读取,否则从标准输入读取。
while read line
do
echo "$line"
done < "${1:-/dev/stdin}"
替换 ${1:-...}
如果已定义,则采用 $1
。否则,使用本进程标准输入的文件名。
关于bash - 如何在 Bash 中读取文件或标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54414780/