列出服务并将其存储在数组 bash 中

列出服务并将其存储在数组 bash 中

我想列出所有服务/etc/init.d/和 grep 模式并将它们存储在数组中。例如如下所示。

ls -la /etc/init.d/ | grep example-subs | awk '{ print $9 }'
example-subs-sidekick
example-subs-unicorn

并将返回的字符串存储在数组中。但不知何故它没有发生。我使用了以下命令。

 gawk -F: '{ print $9 }' ls -la /etc/init.d/ | grep example-subs
 gawk -F: '{ print $9 }' "ls -la /etc/init.d/ | grep example-subs"
 gawk -F: '{ print $9 }' 'ls -la /etc/init.d/ | grep example-subs'
 gawk -F: '{ print $9 }' `ls -la /etc/init.d/ | grep example-subs`
 awk '{ print $9 ls -la /etc/init.d/ | grep example-subs }'
 awk '{ print $9 "ls -la /etc/init.d/ | grep example-subs" }'
 awk '{ print $9 `ls -la /etc/init.d/ | grep example-subs` }'
 awk '{ print $9 (ls -la /etc/init.d/ | grep example-subs) }'
 awk '{ print $9 "(ls -la /etc/init.d/ | grep example-subs)" }'

但没有任何效果。有人能帮忙吗?

答案1

使用第一个命令作为数组分配的一部分:

array=($(ls -a /etc/init.d/ | grep example-subs))

您不需要使用awk。如果您使用ls而不是ls -l,它只会打印文件名。

相关内容