Sie sind nicht angemeldet.

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