SED работает в оболочке, но не в скрипте

Ну, я использовал это в прошлом, но на этот раз попытался урезать мои конфиги при настройке Postfix. Я не уверен, почему Ubuntu это не нужно, а Fedora нужно, но вот как я это исправил.

/etc/postfix/main.cf:

canonical_maps = hash:/etc/postfix/canonical  

/etc/postfix/canonical:

root user@gmail.com

Перезагрузите Postfix и проверьте! -->postmap /etc/postfix/canonical && postfix reload

1
18.05.2021, 23:39
1 ответ

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

#!/usr/bin/bash
readarray -t arr < test.txt
for i in "${arr[@]}"; do
    if ping -c 1 -W 20 "$i" > /dev/null 2>&1; then
        echo "$i is reachable"
        sed -i "/$i/d" test.txt
    else
        echo "$i no ping"
    fi
done

*Спасибо @steeldriver за его комментарий относительно флага -t, добавленного к readarray.

1
28.07.2021, 11:31

Теги

Похожие вопросы