bash - "wc"命令的行为是什么?

标签 bash io-redirection wc fileparsing

例如:

myCleanVar=$( wc -l < myFile )
myDirtVar=$( wc -l myFile )

echo $myCleanVar
9

echo $myDirtVar
9 myFile

为什么在“myCleanVar”中我从“wc”命令中得到一个“整数”值,而在“myDirtVar”中我得到类似“9 file.txt”的值?我引用“整数”是因为知道在 Bash shell 中默认情况下所有都被视为字符串,但无法理解第一个和第二个表达式的行为差异。在这种情况下,重定向“<”的特殊效果是什么?

最佳答案

wc默认情况下将列出文件名,允许您在多个文件上使用它(并且对所有文件都有结果)。如果未指定文件名,则使用通常是控制台输入的“标准输入”,并且不打印文件名。 <需要指定“输入重定向”,即从给定文件读取输入而不是使用用户输入。

将所有这些信息放在一起,您就会得到 wc 的原因在你的例子中的行为

提问时间:cat file | wc -l 的输出是什么? ?

关于bash - "wc"命令的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348406/

相关文章:

linux - 如何修复 bash az 命令未找到

bash - gitlab-ci:具有变量扩展的远程 shell 执行

linux - 将程序的控制台输出保存到文件 - 不简单 2>&1

linux - `which` 的输出忽略重定向

linux - 我如何比较 3 个文件(以查看它们之间的共同点)?

bash - 为什么我的循环有时不读取整行?

bash - 如何在没有 "cannot allocate color"错误的情况下使用 Vim 作为 Git 编辑器

linux - 如何创建具有正确 tty 设置的 execve() 子进程以运行 'vi' 但仍将 IO 重定向回父进程?

linux - 列出所有文件并将文件计数作为 $BASH 中的输出列之一?

logging - Grep 获取来自 kubernetes 多个 pod 的特定文本