【发布时间】:2022-01-01 21:46:21
【问题描述】:
我有这个脚本:
#!/bin/bash
f_status () {
systemctl list-units | grep $1 | awk '{ printf("SERVICE STATUS: %-25s \t %s \t %s \t %s\n",$1,$2,$3,$4) }'
}
f_line() {
echo "-------------------------------------------------------------------------------------------"
}
echo ""
f_line
f_status "cron"
f_status "ssh"
f_line
这个脚本给了我这样的结果:
-------------------------------------------------------------------------------------------
SERVICE STATUS: cron.service loaded active running
SERVICE STATUS: ssh.service loaded active running
-------------------------------------------------------------------------------------------
我搜索如何从 3d 列中删除“.service”。
我尝试使用 substr($i, 0, -8) 和 ${1:-8}
有没有人知道如何从末尾去掉 8 个字符以使其看起来像这样:
-----------------------------------------------------------------------------------
SERVICE STATUS: cron loaded active running
SERVICE STATUS: ssh loaded active running
-----------------------------------------------------------------------------------
【问题讨论】:
-
systemctl list-units | grep $1->systemctl list-units $1 -
@KamilCuk,好点,但不是真正的等价
-
sed 's/\.service//'? -
awk '{sub(".service","")}1'?