Différentes façons d'initialiser une variable
Autant que je l'ai vu il y a deux façons d'initialiser une variable avec la sortie d'un processus. Quelle est la différence entre ces deux?
ex1=`echo 'hello world'`
ex2=$(echo 'hello world')
OriginalL'auteur Paul Manta | 2011-12-18
Vous devez vous connecter pour publier un commentaire.
Vous obtenez le même effet.
La
$()
est recommandé, car il est plus lisibles et facilite le nid une$()
dans un autre$()
.Mise à jour:
La
$()
syntaxe est une POSIX 1003.1 standard (édition de 2004). Cependant, sur certains anciens systèmes UNIX (SunOS, HP-UX, etc.) le/bin/sh
ne pas le comprendre.Vous pourriez avoir besoin d'utiliser backtick """ au lieu ou utiliser un autre shell (en général c'est ksh) si vous avez besoin de votre script à travailler sur un tel environnement.
Si vous ne savez pas quelle syntaxe utiliser - utiliser
$()
. Backtick syntaxe est obsolète.mais c'est le point, quand on parle de portabilité, nous entendons POSIX parce que c'est le standard actuel pris en charge par la plupart des plates-formes, si vous avez des exigences spécifiques qui vont au-delà de cela, alors c'est un cas particulier.
Par "portable", je veux dire "fonctionne sur plusieurs Systèmes d'exploitation" non", est compatible avec la toute nouvelle norme POSIX".
OriginalL'auteur Michał Šrajer
voir http://mywiki.wooledge.org/BashFAQ/082
également remarquer que
$()
est POSIX, de sorte qu'il fonctionne sur sh.OriginalL'auteur Samus_
Il est une autre façon d'initialiser une variable à une valeur par défaut si vous n'avez pas initialisé vous-même.
Il est généralement utilisé lorsque vous passez sur des valeurs à votre script
$1
,$2
et aide votre script de s'exécuter même si ces valeurs ne sont pas explicitement transmis. Par cela, vous pouvez implicitement la valeur de vos variables pour s'exécuter sur des valeurs par défaut si aucune valeur n'a pas été affecté. Cela permet d'économiser environ 4-5 lignes de code où vous voulez vérifier si la variable a été attribué ou non, quelque chose commeif [ -z "$var" ] then; …
Je crois, nous pouvons utiliser echo ${a:="valeur par Défaut"} echo ${a:-"valeur par Défaut"}
OriginalL'auteur jaypal singh