将输出重定向到变量?

将输出重定向到变量?

我对将两个命令的输出定向到一个变量很感兴趣。我不希望输出显示在屏幕上,而是将其分配给脚本中的变量,以便我可以再次使用它。

我正在做的是使用下面的命令从目录中获取文件大小:

ls -l /var/spool | wc -c

此命令获取文件大小(以字节为单位),并将输出显示为整数。我希望将此整数分配给我喜欢的变量,以便稍后将其与另一个变量进行比较

这似乎不起作用:

size = ls -l /var/spool | wc -c

重定向能起作用吗?

像这样....

ls -l /var/spool | wc -c > size

无论哪种方式,我都希望将此数字输出分配给一个变量而不是显示在屏幕上。

欢迎任何建议!

答案1

这看起来很简单。

romano@RRyS:~$ size=$(ls -l /var/spool | wc -c)
romano@RRyS:~$ echo $size
476

shell 语法$(command)执行command,并返回标准输出:只需将其保存在变量中。

您的命令:

ls -l /var/spool | wc -c > size 

将在当前目录中创建一个名为的文件 size(包含数字和换行符)。

答案2

我更喜欢提供的解决方案Rmano 的回答,但如果您只想使用重定向:

read size < <(ls -l /var/spool | wc -c)

相关内容