Используя 'if' внутри двух 'while' loops in bash - 'if' completed пропущено

Я уже искал «использовать, если внутри while loop bash» и не нашел свою ситуацию.

У меня есть текстовый файл, который является списком устройств. Каждая строка в текстовом файле является короткой последовательностью без пробела. Это текстовый файл:

sda
sda1
sda2
sda3
sdb

Я написал сценарий, который считывает текстовый файл по строкам (первый цикл while). Для каждой строки «df» вызывается с использованием «dev/$ line» в качестве входных данных. 'df' выводит 2 строки в stdout. При использовании трубы выходные данные df считываются построчно (второй цикл while). Я знаю, что вложенные «while» петли и канал от «df» до «while read» работают нормально, потому что я могу использовать «echo» для печати каждой строки от «df» на консоли.

Моя проблема в том, что я добавил условие «если» для тестирования, но «если», кажется, просто пропущено! Ничего не выходит для той части моего сценария... несмотря на то, что оно должно повторяться «не найдено», если условие «если» завершается неуспешно.

Вот сценарий:

#!/usr/bin/bash
#list the devices in /dev, save list of devices beginning in sd
ls /dev | grep -E 'sd' > /home/testuser/grepout.txt
#iterate through the list and check its mountpoint
input=/home/testuser/grepout.txt
bootdev=''
echo "$bootdev is not set"
#if the mountpoint is boot, then save the dev name
while read line
do
        echo "checking mountpoint of $line"
        counter=0
        df /dev/"$line" --output=target | while read line2
        do
                echo $counter
                ((counter++))
                if [ "$line2"="/boot" ]
                then
                        echo "$line2"
                        bootdev="$line"
                else
                        echo "Not found"
                fi
        done
done < "$input"

Вот вывод:

 is not set
checking mountpoint of sda
0
Mounted on
1
/dev
checking mountpoint of sda1
0
Mounted on
1
/dev
checking mountpoint of sda2
0
Mounted on
1
/boot
checking mountpoint of sda3
0
Mounted on
1
/dev
checking mountpoint of sdb
0
Mounted on
1
/dev
-121--898992- Переместить загрузочный раздел ext2 в LVM У меня есть сервер Ubuntu 16.04 с загрузочным разделом ext2 и установкой LVM. Я хочу переместить или скопировать содержимое загрузочного раздела в LVM. Я обыскал, и самое близкое, что я нашел...

У меня есть сервер Ubuntu 16.04 с загрузочным разделом ext2 и установкой LVM.

Я хочу переместить или скопировать содержимое загрузочного раздела в LVM.

Я искал, и самое близкое, что я нашел, это https://www.system-rescue.org/lvm-guide-en/Moving-the-linux-rootfs-to-an-LVM-volume/

Я не уверен, как изменить меню загрузки grub после копирования загрузочного содержимого в папку/boot в LVM.

0
задан 7 April 2021 в 06:33

1 ответ

GRUB (при правильной настройке) выдаст подсказку с парольной фразой, которая используется для разблокировки загрузчика второго уровня. Последние несколько шагов здесь показывают, как это сделать.

Я предлагаю скопировать все и сделать это, а затем восстановить необходимые файлы из резервной копии.

0
ответ дан 23 April 2021 в 23:25

Другие вопросы по тегам:

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