gpt4 book ai didi

linux - 如何在解析内容以显示反馈的同时隐藏脚本的输出?

转载 作者:行者123 更新时间:2023-12-03 09:58:09 24 4
gpt4 key购买 nike

我有以下 bash 脚本,它扩展了输出大量信息的卷。

我想隐藏脚本命令的所有输出,仅在脚本开始时捕获卷的大小,然后在脚本结束时,并输出带有更改的单行。

剧本:

#!/bin/bash

du -h
printf "Fix\nFix\n" |parted ---pretend-input-tty /dev/sda print
parted /dev/sda resizepart 3 100%
pvresize /dev/sda3
lvextend -l +100%FREE /dev/SystemVG/root
xfs_growfs /dev/SystemVG/root
du -h

开头的 du -h 命令输出以下内容:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/SystemVG-root 12G 6.4G 5.4G 55% /
devtmpfs 858M 0 858M 0% /dev
tmpfs 870M 0 870M 0% /dev/shm
tmpfs 870M 9.4M 860M 2% /run
tmpfs 870M 0 870M 0% /sys/fs/cgroup
/dev/sda2 1.9G 49M 1.8G 3% /boot
/dev/sda1 71M 12M 60M 16% /boot/efi
tmpfs 174M 0 174M 0% /run/user/0

最后的 du -h 命令输出以下内容:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/SystemVG-root 21G 6.4G 14G 32% /
devtmpfs 858M 0 858M 0% /dev
tmpfs 870M 0 870M 0% /dev/shm
tmpfs 870M 9.4M 860M 2% /run
tmpfs 870M 0 870M 0% /sys/fs/cgroup
/dev/sda2 1.9G 49M 1.8G 3% /boot
/dev/sda1 71M 12M 60M 16% /boot/efi
tmpfs 174M 0 174M 0% /run/user/0

我想要实现的输出如下:
[root@system]# ./expandvolume.sh
Volume has been expanded from 12G to 21G.
[root@system]#

最佳答案

如果您可以提供文件系统名称,您可以处理 du输出如下:

filesystem='SystemVG'
start_du=$(du -h | grep "$filesystem" | awk '{print $2}')

...

end_du=$(du -h | grep "$filesystem" | awk '{print $2}')
echo "Volume has been expanded from $start_du to $end_du"

扩展卷的中间步骤只需要将 stdout 和/或 stderr 转移到/dev/null 以抑制输出,例如 pvresize /dev/sda3 >/dev/null 2>&1转移两者(离开 2>&1 仍会报告错误)。

关于linux - 如何在解析内容以显示反馈的同时隐藏脚本的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61817304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com