Je fais un echo $1
, il affiche quel est le shell de connexion par défaut utilisé.
Mais à echo $2
partir de maintenant, tout ce que je reçois est une nouvelle ligne. Pourquoi donc?
$ 1 (ou $ 2, $ 3 ...) est censé être les arguments donnés à un 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
Supposons que vous couriez
puis
la source
Dans votre cas, $ 1 affiche le shell de connexion par défaut utilisé car cet argument a été transmis au script qui exécute votre shell de connexion. Mais si vous écrivez et exécutez votre propre script dans la session en cours, $ 1, $ 2, ... seront des paramètres que vous enverrez à votre script.
la source