Теоретически, этот фрагмент от pentoo-installer находит все разделы на выбранном диске, но не находит мой раздел sda1, поэтому я хотел бы понять его и изменить так, как он делает.

findpartitions() {
    workdir="$PWD"
    for devpath in $(finddisks); do
        disk=$(echo $devpath | sed 's|.*/||')
        cd /sys/block/$disk
        for part in $disk*; do
            # check if not already assembled to a raid device
            if ! [ "$(cat /proc/mdstat 2>/dev/null | grep $part)" -o "$(fstype 2>/dev/null </dev/$part | grep "lvm2")" -o "$(sfdisk -c /dev/$disk $(echo $part | sed -e "s#$disk##g") 2>/dev/null | grep "5")" ]; then
                if [ -d $part ]; then
                    echo "/dev/$part"
                    [ "$1" ] && echo $1
                fi
            fi
        done
    done

    #[ ... more code ...]

    cd "$workdir"
}

Спасибо!!

1 ответ1

0

Вам нужно будет немного отладить это . Для начала добавьте команды echo для вывода потока и, необязательно, переменные после каждого цикла for и оператора if.

Вы можете запустить команду с включенной отладкой? Это предоставит вам примерно такой же уровень детализации и поможет вам понять, что на самом деле делает сценарий. Кроме того, этот пост в Unix объясняет, как получить номера строк из отладки, которую предоставил нам bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .