我使用的命令是:ls -l . | totLines=$(wc -l) echo $totLines
。我的目标是显示总行数,但通过分配wc -l
变量名称的输出,然后显示该变量的值。然而这不起作用。wc -l
在从上一个命令获取正在处理的行后,如何从输出中创建变量ls
?
答案1
在这种情况下,你的管道不会进入你的内壳,所以你会想要
totLines=$(ls -l . | wc -l)
printf '%s\n' "$totLines"
做你在这里尝试的事情。不过,在这种情况下,该-l .
部分实际上并没有多大区别,因此您可以将其保留。另外,请注意,如果您的任何文件名包含新行,您将以这种方式得到错误的计数。