Jus*_*tin 9 command-line bash redirect
我对将两个命令的输出定向到一个变量很感兴趣。我不希望输出显示在屏幕上,而是分配给脚本中的一个变量,以便我可以再次使用它。
我正在做的是使用下面看到的命令从目录中获取文件大小:
ls -l /var/spool | wc -c
Run Code Online (Sandbox Code Playgroud)
此命令以字节为单位获取文件大小并将输出显示为整数。我有兴趣将此整数分配给我喜欢的变量,以便稍后将其与另一个变量进行比较
这似乎不起作用:
size = ls -l /var/spool | wc -c
Run Code Online (Sandbox Code Playgroud)
重定向会起作用吗?
像这样....
ls -l /var/spool | wc -c > size
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,我都希望将此数字输出分配给变量而不是显示在屏幕上。
任何建议都非常受欢迎!
Rma*_*ano 12
这似乎很简单。
romano@RRyS:~$ size=$(ls -l /var/spool | wc -c)
romano@RRyS:~$ echo $size
476
Run Code Online (Sandbox Code Playgroud)
shell 语法$(command)
执行command
,并返回标准输出:只需将其保存在一个变量中。
你的命令:
ls -l /var/spool | wc -c > size
Run Code Online (Sandbox Code Playgroud)
将创建一个size
在当前目录中命名的文件 (包含数字和换行符)。
我更喜欢Rmano's answer提供的解决方案,但如果您只想使用重定向:
read size < <(ls -l /var/spool | wc -c)
Run Code Online (Sandbox Code Playgroud)