Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

OS Linux

Bash script vraagje

MVE
8 antwoorden
  • Ik heb dit Korn shell scriptje maar die geeft een error bij de output:

    script:

    # ! /bin/ksh
    #
    export name=
    export domain=
    export mailbox=
    echo "Enter the name: "
    read name
    echo "Enter domain: "
    read domain
    echo "Enter Mailbox:"
    read mailbox
    printf "${name}@${domain} \t | ${mailbox}" >> file

    Output bij intypen name en domain:


    Enter the name:
    michiel
    ': not a valid identifieread: `name
    Enter domain:

    Wat gaat er fout?

    M.
  • Ik ken nog geen reed van scripting maar moet je niet eerst je variabelen definieren voordat je ze gaat gebruiken ?

    dus iets als

    echo "Enter the name: $name"
    export $name
  • Nope..dat is het niet. .:cry:
    thanks anyway :)

    M.
  • Voor wat het waard is: ik heb het scriptje eens in bash gedraaid (dus met "#!/bin/bash" als eerste regel) en dat gaf geen enkel probleem. Denk niet dat je er veel aan hebt, maar goed. Overigens snap(te) ik die exports aan het begin niet. Maar ook als ik die niet weg-#, loopt alles OK. Tja …
  • mij lijkt het ook dat je eerst een bepaalde waarde aan je name moet geven voordat je hem gebruikt, doormiddel van name te definieren of een databse of dergelijks…



    Greetz
  • Is het niet gewoon [code:1:4ca4028531]
    read $name
    [/code:1:4ca4028531]

    enz?

    Btw: draait het script wel in bash? En wat is er anders in een korn-shell?
  • Korn shell kan bepaalde statements weer wel die BASH niet kan..maar voor dit script maakt het volgens mij geen zak uit.
    Ik heb het nu ook zelf werkend met wat extraatjes:
    # ! /bin/bash
    cp /etc/mail/virtusertable /etc/mail/virtusertable.bck
    export name=
    export domain
    export mailbox=
    export sure=
    echo "Enter the name:"
    read name
    echo "Enter domain"
    read domain
    echo "Enter Mailbox:"
    read mailbox
    printf "${name}@${domain} \t ${mailbox}
    " >> /etc/mail/virtusertable
    echo "Are you sure?"
    read sure
    if [ $sure = y ]; then
    makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
    else
    cp /etc/mail/virtusertable.bck /etc/mail/virtusertable | makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
    fi


    Hiermee kan een leek vrij simpel virtusertable entries maken en bij succes de virtusertable reloaden en bij geen succes de backup terug zetten.
    Tis nog grof lelijk en het stinkt, maar….het is een begin in scripting (en uiteindelijk perl programming wat ik ambieer :-) )

    Thanks voor de tips!

    M.
  • Wat is er nu anders? Ik begreep dat bij de eerste read al een foutmelding kwam?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.