1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

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

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Grawapple, 24.12.09.

  1. Grawapple

    Grawapple Uelzener Rambour

    Dabei seit:
    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
     
  2. philo

    philo Roter Stettiner

    Dabei seit:
    13.10.04
    Beiträge:
    973
    also dein programm ist schon beendet, wenn du bla eingibst. Das System kennt dann den Befehl "bla" nicht...
     
  3. philo

    philo Roter Stettiner

    Dabei seit:
    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
     
  4. Rastafari

    Rastafari Golden Noble

    Dabei seit:
    10.03.05
    Beiträge:
    17.896
    Semikolon oder neue Zeile sind äquivalent.

    Code:
    if [ -d "$2" ]; then
      ....;
    fi;
    
    ENTWEDER benutzt du -d ODER den Stringvergleich mit ==
    Beides zusammen geht schlecht.
     

Diese Seite empfehlen