цикл for не работает в bash

Вероятно, во время установки Ubuntu подключался к Интернету через домашний маршрутизатор. Для этого он сообщил маршрутизатору имя своего хоста и получил временный локальный IP-адрес.

Теперь, когда вы перезагрузитесь в Fedora, она подключится к тому же маршрутизатору, чтобы получить свой IP-адрес, но старая аренда, созданная для Ubuntu, по-прежнему действительна. Поскольку это та же машина с той же сетевой картой и тем же аппаратным MAC-адресом, она будет повторно использовать ту же аренду.

Я предполагаю, что маршрутизатор отправляет имя хоста, на котором была зарегистрирована аренда IP, и Fedora получает его.

К сожалению, у меня нет доказательств или цитат, подтверждающих мой ответ, я могу просто рассказать о личном опыте установки Ubuntu в режиме двойной -загрузки с Windows. В то время Ubuntu отказывалась задавать во время установки то же имя хоста, которое я использовал в Windows, потому что оно утверждало, что это имя уже присутствует в сети. Скорее всего, у нас происходит что-то подобное.

Чтобы проверить, относится ли то, что я предполагаю, к вашей ситуации, попробуйте отозвать аренду IP-адреса в интерфейсе настройки вашего маршрутизатора, а затем перезагрузите Fedora. Если он больше не использует имя хоста Ubuntu,Я должен быть прав.

8
22.08.2019, 18:40
1 ответ

Конструкция $(foo)запустит команду fooи заменит $(foo)выводом выполнения foo. Вам нужен шар, это не команда. Вы пытаетесь запустить все файлы с именем ./zebu.work.post_opt/ZEBU_CTO_FT_MOD*. Все, что вам нужно, это:

if [ -f zebu.work.post_opt/ZEBU_CTO_FT_MOD.v ]
then
    for file in./zebu.work.post_opt/ZEBU_CTO_FT_MOD*;
    do
        perl -i -p -e 's/input/inout/g' "$file"
        perl -i -p -e 's/output/inout/g' "$file"
        perl -i -p -e 's/wire.*\n/tran\(i0,\ o\);/g' "$file"
        perl -i -p -e 's/assign.*\n//g' "$file"
    done
fi

Или проще:

if [ -f zebu.work.post_opt/ZEBU_CTO_FT_MOD.v ]
then
    for file in./zebu.work.post_opt/ZEBU_CTO_FT_MOD*;
    do
        perl -i -p -e 's/input/inout/g; s/output/inout/g; 
                       s/wire.*\n/tran\(i0,\ o\);/g; 
                       s/assign.*\n//g' "$file"
    done
fi

Или еще проще:

if [ -f zebu.work.post_opt/ZEBU_CTO_FT_MOD.v ]
then
    perl -i -p -e 's/input/inout/g; s/output/inout/g; 
                   s/wire.*\n/tran\(i0,\ o\);/g; 
                   s/assign.*\n//g'./zebu.work.post_opt/ZEBU_CTO_FT_MOD*
fi
9
27.01.2020, 20:11

Теги

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