Эхо нескольких строк в команду? - PullRequest
0 голосов
/ 05 октября 2018

Было бы очень полезно для меня, если бы я мог сделать что-то вроде этого

echo {
aic94xx-firmware*
alsa-firmware
btrfs-progs
centos-logos
iprutils
ivtv*
iwl*firmware
} | rpm -e

, где каждый пакет для удаления - это отдельная строка.Это всего лишь один пример, но если такая вещь возможна в Bash, то я бы применил ее и к другим ситуациям.

Вопрос

Возможно ли повторитьсвоего рода HEREDOC в команду?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Используйте обратную косую черту, чтобы разбить команду на несколько строк.

rpm -e \
    aic94xx-firmware'*' \
    alsa-firmware \
    btrfs-progs \
    centos-logos \
    iprutils \
    ivtv'*' \
    iwl'*'firmware

Или использовать массив.Обратной черты не требуется.

packages=(
    aic94xx-firmware'*'
    alsa-firmware
    btrfs-progs
    centos-logos
    iprutils
    ivtv'*'
    iwl'*'firmware
)

rpm -e "${packages[@]}"

Обратите внимание, что в любом случае я цитировал звездочки.Вы хотите, чтобы rpm интерпретировал шары, а не оболочку, поэтому их следует экранировать.

0 голосов
/ 05 октября 2018

Вы можете использовать xargs для этого:

echo "aic94xx-firmware* alsa-firmware btrfs-progs centos-logos iprutils ivtv* iwl*firmware" | xargs rpm -e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...