linux function met parameter
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 ...
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é?
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.
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?
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.
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 ;-)