将输出重定向到变量?

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

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

ls -l /var/spool | wc -c 

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

这似乎不起作用:

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

重定向会有效吗?

像这样….

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

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

任何建议都非常欢迎!

这似乎很简单。

 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的文件(包含数字和换行符)。

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

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