Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

NC10

User

  • »NC10« ist weiblich
  • »NC10« ist der Autor dieses Themas

Beiträge: 196

Registrierungsdatum: 11.06.2007

Derivat: Ubuntu

Architektur: 32-Bit PC

Desktop: Unity

Andere Betriebssysteme: Mac OS Lion

  • Nachricht senden

1

22.10.2010, 13:23

Probleme mit einem Text-Skript

Hallo,

ich versuche mich grad wieder etwas in Shell Skripting einzuarbeiten.
Habe versucht folgendes Skript zu schreiben und auszuführen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
#! /bin/sh
#Aufgabe 4c: smart.sh 
echo "Bitte geben sie den Dateinamen ein:"
read dateiname 
echo "Ihre Datei heißt $dateiname."
fileart=$(file -b $dateiname)
text="UTF-8 Unicode text"
if [$fileart = $text]
then 
	open -a smultron $dateiname
fi


Der Test bei Bedingung scheint aber nicht zu funktionieren und ich weis nicht warum. Stringvergleich hab ich gelesen funktionert mit einfach =! Vielleicht kann mir jemand kurz helfen, Shell Programmierung ist schon wieder so lange her bei mir.

Vielen vielen Dank
NC10

2

22.10.2010, 16:44

Hi,
Die Probleme sind:

Quellcode

1
[$fileart = $text]
Nach '[' und vor ']' muß je ein Leerzeichen stehen, damit es als Abkürzung für das Kommanto "test" erkannt wird. Sonst bekommst du gleich mal die Meldung:

Quellcode

1
bash: [UTF-8 Unicode text: command not found
weil das Ganze als Kommandofolge interpretiert wird statt als Vergleichsstring.

Weiters muss die Variable in double quotes sitzen, damit ihr Inhalt als ganzer string genommen wird, und nicht als einzelne Wörter, sonst sind es für die bash:

Quellcode

1
bash: [: too many arguments
mir is wurscht