12 votes

Sur un Shell Linux, que doit faire echo $1 ?

Je fais un echo $1 il imprime ce qui est le login par défaut Shell utilisé.

Mais pour echo $2 tout ce que j'obtiens, c'est un saut de ligne. Comment cela se fait-il ?

23voto

Janne Pikkarainen Points 7357

$1 (ou $2,$3 ...) est supposé être les arguments donnés à un certain script.

Voici un exemple de script :

#!/bin/bash

echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"

Et l'exemple de sortie

jaba@lappy:/tmp$ ./example.sh 
$1 is now 
$2 is now 
$3 is now 
jaba@lappy:/tmp$ ./example.sh 1 2 3
$1 is now 1
$2 is now 2
$3 is now 3

4voto

Mukesh Chapagain Points 293

$1 est l'argument passé pour Shell Shell.

Supposons que vous exécutez

./myscript.sh hello 123 

puis

$1 sera Bonjour

$2 sera 123

3voto

Ios Points 31

Dans votre cas, $1 imprime le login par défaut Shell utilisé parce que cet argument a été passé à Shell qui exécute votre login Shell. Mais si vous écrivez et exécutez votre propre Shell dans la session actuelle, $1, $2, ... seront des paramètres que vous enverrez à votre Shell.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X