linux function met parameter

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ozzie PHP

Ozzie PHP

11/05/2016 17:24:04
Quote Anchor link
Hallo,

In PHP een eitje, maar in Linux ken ik de syntax niet goed.

Ik wil voor mezelf een alias maken voor een commando waar VERPLICHT één argument bij hoort.
In de shell wil ik dus kunnen invoeren:

$ foo argument

Als dat argument niet wordt ingevoerd, vindt er ongewenst gedrag plaats. Daarom wil ik dus dat als dat argument niet wordt ingevoerd er in de shell komt te staan 'voeg argument toe'.

Ik begrijp dat dit met een functie moet, zover ben ik inmiddels. Maar ik weet dus niet hoe ik die parameter verplicht moet stellen en een melding moet tonen als de parameter niet is ingevuld. Iemand een idee?

Toevoeging op 11/05/2016 17:48:38:

Edit: never mind ... heb al wat gevonden inmiddels ...
 
PHP hulp

PHP hulp

27/11/2024 04:06:01
 
- SanThe -

- SanThe -

11/05/2016 18:13:23
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
#!/bin/sh

if [ "$#" -eq 1 ]
then
        echo "Exact 1 parameter gegeven. ($1)"
else
        echo "Er moet 1 parameter worden gegeven."
fi
 
Ozzie PHP

Ozzie PHP

11/05/2016 18:16:29
Quote Anchor link
Thanks Santhe. Zoiets had ik inmiddels ook.

Ik heb alleen [ "$1" = "" ] gebruikt in plaats van [ "$#" -eq 1 ].
Maakt dat wat uit?

Om de functie te verlaten als er geen parameter is opgegeven, heb ik "return 1" gebruikt. Is dat oké?
 
- SanThe -

- SanThe -

11/05/2016 18:22:44
Quote Anchor link
Test hem even uit zou ik zeggen.
De then in mijn script werkt alleen als er exact 1 parameter is gegeven, dus niet 0 en ook geen 2 of meer.
Jij kijkt of de eerste parameter leeg is.

Return is voor als het script ergens (bv. ander script) wordt aangeroepen.
Zie het als return true (1) bij geslaagde actie en false (0) bij falen.
Je kan daar dan (in dat andere script) op reageren.
 
Ozzie PHP

Ozzie PHP

11/05/2016 20:23:47
Quote Anchor link
>> De then in mijn script werkt alleen als er exact 1 parameter is gegeven, dus niet 0 en ook geen 2 of meer.

Ik heb getest, maar dat werkt niet. Als ik geen parameter opgeef, voert ie alsnog de rest van de funtie uit. Lijkt dus niet te kloppen.

>> Return is voor als het script ergens (bv. ander script) wordt aangeroepen.

Is dat dan niet de juiste manier om een functie vroegtijdig te verlaten? Is er een betere manier?
 
- SanThe -

- SanThe -

11/05/2016 20:33:31
Quote Anchor link
Ozzie PHP op 11/05/2016 20:23:47:
Ik heb getest, maar dat werkt niet. Als ik geen parameter opgeef, voert ie alsnog de rest van de funtie uit. Lijkt dus niet te kloppen.

Als er geen parameter is opgegeven dan doet ie de else.

Ozzie PHP op 11/05/2016 20:23:47:
Is dat dan niet de juiste manier om een functie vroegtijdig te verlaten? Is er een betere manier?

Daar is exit voor.
 
Ozzie PHP

Ozzie PHP

11/05/2016 20:53:54
Quote Anchor link
>> Als er geen parameter is opgegeven dan doet ie de else.

Ah, op die fiets ... oké ...

>> Daar is exit voor.

Die sluit m'n complete shell af .. dat was niet de bedoeling :-)

De if-else die werkt. Thanks ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.