${ varname :- woord }: Als varname bestaat en niet null is, geeft de waarde van varname terug, anders geeft woord terug. Wordt gebruikt om een standaardwaarde terug te geven wanneer een variabele niet bestaat of niet gedefinieerd is. Als het ${ varname - woord } is, kan het nul zijn wanneer de varname bestaat, bijvoorbeeld definiëren we myparam=, waarbij we de waarde van de varname teruggeven, anders het woord teruggeven. Je kunt ook ":" verwijderen, wat dezelfde betekenis heeft en niet wordt herhaald.
${ varname := woord }: Als varname bestaat en niet null is, geeft het de waarde van varname terug, anders kent het een woord toe en geeft die waarde terug. Gebruikt om een standaard in te stellen voor een variabele die niet bestaat of niet gedefinieerd is. Voor positieparameters kunnen alleen-lezen en niet worden toegewezen.
${ varname :? bericht }: Als varname bestaat en niet null is, de waarde van varname teruggeeft, anders de informatie afdrukt varname:message, en het abortscript wordt gebruikt, als we message niet instellen, de standaard "parameter null or not set" wordt gebruikt. Wordt gebruikt om fouten te controleren waar variabelen niet gedefinieerd zijn.
${ varname :+ woord }: Als varname bestaat en niet null is, geeft het de waarde van het woord terug, anders geeft het null terug. Gebruikt om de aanwezigheid of afwezigheid van variabelen te detecteren.
${ varname : offset : length }: Operatie om de substring te krijgen. Hij geeft een reeks van lengte terug vanaf de offsetpositie in de varname. De eerste positie is 0, als lengte niet wordt gegeven of ongeldig is (minder dan 0), worden alle tekens na offset teruggegeven, en als het {@:offset:length} is, wordt de totale lengteparameter van de scriptparameter van de eerste offsetparameter teruggegeven.
Maak een nieuw test.sh testscript aan als volgt:
|