• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Hilfe mit Bash/Shell, simples Skript will einfach nicht so wie es sollte!!

Grawapple

Uelzener Rambour
Registriert
13.05.06
Beiträge
373
Tag auch und frohe Weihnachten! Ich habe eine Frage bezüglich Bash/Shell
Folgendes Skript:

Code:
#!/bin/sh

if [ "$1" == "" ] ; then
echo "Type your content here!"
exit 1
fi

if [ "$2" == "" ] ; then
echo "Type filename here!"
exit 1
fi

if [ $3 == "" ] ; then
echo "Type prefered directorie here!"
exit 1
fi

if [ -d $2 == true ] ; then
cd $2
else
mkdir $2
cd $2
fi

echo $1 > $2

echo "Action completed!"
exit 0

Wenn ich nun ./test.txt eingebe denn fragts auch zuerst nach dem content. dann gebe ich "bla" als content ein und rücke enter. eigentlich sollte es dann zur nächsten aufforderung kommen. aber das tut es nicht. es sagt "unknown command: bla"
wenn ich dann versuche gleich alle drei parameter anzugeben - so: ./test.txt bla bla.txt /Users/user/Desktop/ , dann steht da: too many arguments on line soundso...

Kann mir da wer weiterhelfen?

LG und TY
Yatekii
 

philo

Roter Stettiner
Registriert
13.10.04
Beiträge
973
also dein programm ist schon beendet, wenn du bla eingibst. Das System kennt dann den Befehl "bla" nicht...
 

philo

Roter Stettiner
Registriert
13.10.04
Beiträge
973
Kenne mich auf der Shell nicht so gut aus, aber zumindest funktioniert das hier jetzt:

- then auf einen neue Zeile
- die Semikolons weg
- Zeile 21 gibt noch einen Fehler

Code:
#!/bin/sh

if [ "$1" == "" ] 
then
echo "Type your content here!"
exit 1
fi

if [ "$2" == "" ] 
then
echo "Type filename here!"
exit 1
fi

if [ "$3" == "" ]
then
echo "Type prefered directorie here!"
exit 1
fi

if [ -d $2 == true ]
then
cd $2
else
mkdir $2
cd $2
fi

echo $1 > $2

echo "Action completed!"
exit 0

Gruss
philo