我需要获取命令的输出并使用脚本将其设为文件名

我需要获取命令的输出并使用脚本将其设为文件名

我正在研究一种将 Linux 机器集成到 SCCM 报告中的方法。我们想要做的事情之一是验证机器上的交换大小。

我知道我可以通过运行来获取机器上的交换金额

cat /proc/meminfo | grep SwapTotal

不幸的是,SCCM 无法运行这些命令,但我们的 SCCM 管理员说,如果我可以在文件夹中创建一个文件,他就可以将该文件读入报告中,只要它有特殊的结尾。

我想从该命令中获取信息,并将其通过管道传输到文件名,因此如果交换为 6000,则该文件将被命名为 6000.swap

谁能指出我在哪里可以找到如何执行此操作的方向?

谢谢!

答案1

如果唯一重要的是生成的文件名:

rm -f *.swap
touch "$(awk '/SwapTotal/ { print $2 }' /proc/meminfo).swap"

如果您需要SwapTotal文件中的行:

rm -f *.swap
swap="$(awk '/SwapTotal/ { print $2 }' /proc/meminfo)"
grep SwapTotal /proc/meminfo > "${swap}.swap"

或在一个命令中(感谢阿彻马尔提示):

rm -f *.swap
awk '/SwapTotal/ { print $0 > $2 ".swap" ;}' /proc/meminfo

答案2

你可以做一些简单的事情

touch /path/to/file/$(cat /proc/meminfo | grep SwapTotal | awk '{print $2}').swap

答案3

你可以这样做:

touch `awk '/SwapTotal/ { print $2 }' /proc/meminfo`.swap

相关内容