gpt4 book ai didi

linux - 如何在 Linux 中获取服务数组

转载 作者:太空狗 更新时间:2023-10-29 11:37:27 25 4
gpt4 key购买 nike

在 linux shell 脚本中,我使用下面的行来获取所有服务的列表,以便我可以找到哪些正在运行或未运行,如果没有,我将尝试启动它们,如果无法启动,则记录条目。

service_array=($(service --status-all|rev|cut -d " " -f 1|rev))

但对于下标带有问号的服务,它不会采用如下条目。

[ ? ]  appport[ ? ]  console-setup

对于这些条目,它只是在控制台上按原样给出输出,而不是数组中的条目。那么上面一行的问题是什么

最佳答案

尝试:

service_array=($(exec service --status-all | sed 's|.* ||'))

或者更好:

readarray -t service_array < <(exec service --status-all | sed 's|.* ||')

没有 sed:

readarray -t service_array < <(exec service --status-all)
service_array=("${service_array[@]##* }")

还有一个:

service_array=()
while read service; do service_array+=("$service"); done < <(exec service --status-all | sed 's|.* ||')

或者

service_array=()
while read service; do service_array+=("$service"); done < <(exec service --status-all)
service_array=("${service_array[@]##* }")

sed 的替代方法是使用 awk:

... | awk '{ print $NF }'

关于linux - 如何在 Linux 中获取服务数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301343/

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