GNU/Linux >> Tutoriels Linux >  >> Linux

Que signifie `:-` dans un script shell ?

Cette question a déjà une réponse ici :Comment les variables entre accolades sont évaluées

(1 réponse)
Fermé il y a 4 ans.

J'ai vu cela à la fin d'un script shell génial, mais je ne comprends pas la connexion ici car je pense qu'il est en sous-effectif pour une commande plus longue.

spark ${@:-`cat`}

Cela apparaît à la fin de ce script. Des idées ?

+ Des notes pour quelqu'un qui l'étend dans un segment complet de code, même si c'est plus lent (mieux pour l'explication)

Réponse acceptée :

C'est le premier cas particulier de substitution de paramètres dans man bash :

${parameter:-word}
Utilisez les valeurs par défaut. Si parameter n'est pas défini ou nul, le développement de word est substitué. Sinon, la valeur de parameter est remplacé.

Dans le cas que vous avez mentionné, soit l'utilisateur a fourni des arguments sur la ligne de commande et ils seront utilisés, soit l'utilisateur est invité à les saisir sur l'entrée standard par la suite.


Linux
  1. Que signifie le tilde (~) à la fin d'un nom de fichier ? ?

  2. Que signifie l'esperluette à la fin d'une ligne de script Shell ?

  3. Que signifie « rm est haché » ?

  4. Que signifie ${1+"[email protected]"} dans un script shell, et en quoi diffère-t-il de "[email protected]" ?

  5. Que signifie cet avertissement ?

Que signifie chmod 777

Que signifie "-" (double tiret) ?

Qu'est-ce que cela signifie d'être "compatible sh" ?

Qu'est-ce que Shebang dans Linux Shell Scripting ?

Pas de variable DISPLAY X11 - qu'est-ce que cela signifie ?

Que fait % dans les chaînes du shell Linux ?