将输出重定向到变量?
我很有兴趣将两个命令的输出定向到一个变量。 我不希望输出显示在屏幕上,而是分配给我的脚本中的变量,以便我可以再次使用它。
我正在做的是使用下面的命令从目录中获取文件大小:
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)