Heredoc funktioniert nicht im Bash-Skript

Heredoc funktioniert nicht im Bash-Skript

Ich habe ein Bash-Skript erstellt, das in Ubuntu funktionierte, aber jetzt funktioniert es nicht in Manjaro. Es schlägt bei dieser Methode fehl:

#!/bin/bash

dev_block="/dev/sdb"

createPartitions(){
    
        echo "Creating Partitions on "$dev_block"..."
        sfdisk $dev_block -uS <<-EOF
        start=63, size=409600, type=c, bootable
        start=411648, type=af
        EOF
    }

createPartitions

Ich erhalte diese Ausgabe ...

Creating Partitions on /dev/sdb...
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 28.84 GiB, 30966546432 bytes, 60481536 sectors
Disk model: USB FLASH DRIVE 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EB88C926-F304-6D45-82C8-0BAC5E73A2CB

Old situation:

Device      Start      End  Sectors  Size Type
/dev/sdb1    2048   411585   409538  200M EFI System
/dev/sdb2  413633 60481502 60067870 28.6G Apple HFS/HFS+

>>> Created a new GPT disklabel (GUID: 0EBA642D-3CB5-8841-A150-D18AC387D65F).
/dev/sdb1: Failed to add #1 partition: Invalid argument
Leaving.

Ich habe auch versucht, das EOF nach hinten zu verschieben, sodass davor kein Tab steht.

createPartitions(){

    echo "Creating Partitions on "$dev_block"..."
    sfdisk $dev_block -uS <<-EOF
    start=63, size=409600, type=c, bootable
    start=411648, type=af
EOF
}

Ich habe nachgesehen und es gibt keinen Tabulator oder Leerraum NACH dem schließenden EOF. Aber auch in Ubuntu musste ich das schließende EOF nicht zurückverschieben.

Wie debugge ich das? Vielleicht verhält sich sfdisk in Arch anders?

Prost.

Antwort1

Ich habe die Antwort gefunden ... während ich den Code in Manjaro testete, hatte ich diese notwendige Methode auskommentiert, die die Partitionen und Dateisysteme auf dem Laufwerk vor jedem Ausführen des Befehls sfdisk löscht:

wipeFilesystems(){

echo "Wiping filesystems on "$dev_block"..."
sfdisk --delete $dev_block
wipefs --all $dev_block

}

verwandte Informationen