Hallo,
Zum Zeile-1-Fehler: Hat die Datei womöglich Windows Zeilenenden, also CRLF statt nur LF? Das führt zu genau diesem Fehler! Abhilfe: Umwandeln mit dos2unix lei.sh. Prüfe sonst auch auf andere Sonderzeichen oder überflüssige Leerzeichen am Zeilenende.
Zum Rest des Skriptes: Das Problem ist noch deine erste su-Zeile mit fdisk. Die Variable geraetlang würde so innerhalb der root-Shell gesetzt und ist dann außerhalb nicht mehr verfügbar. Deine beiden su-Kommandos führen außerdem dazu, dass du das Passwort zweimal eingeben musst. Außerdem hast du ein Problem mit den Anführungszeichen. Meine Version wäre:
#!/bin/bash
# Leica mounten
su - -c 'mount -r $(fdisk -l | grep Novell | cut -d " " -f 1) /mnt/leica'
konqueror /mnt/leica &
Also alles, was root braucht, in einer einzigen Zeile machen. cut bevorzuge ich da auch vor dem Substring, weil es bei beliebigen Stringlängen funktionieren würde.
Zur Erklärung: ein weiteres Problem bei dir waren die Anführungszeichen. Bei "" werden Variablen und $-Ausdrücke im String zuerst ersetzt, bevor der String an das umgebende Kommando weitergereicht wird. Damit wurde als fdisk noch als User aufgerufen. Erst das Ergebnis davon würde an su weitergegeben werden.
'' (also die einfachen Anführungszeichen) jedoch macht das nicht. Der Inhalt wird direkt übergeben. Damit wird fdisk nun erst von su ausgeführt und damit im root-Modus.