Назад | Перейти на главную страницу

перечислить сервисы и сохранить их в массиве 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)" }'

Но ничего не работает. Может здесь кто-нибудь поможет.

Используйте свою первую команду как часть присваивания массиву:

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

Вам не нужно использовать awk. Если вы используете ls вместо того ls -l, единственное, что он печатает, - это имя файла.