Hago un echo $1
, imprime cuál es el shell de inicio de sesión predeterminado utilizado.
Pero en echo $2
adelante, todo lo que obtengo es una nueva línea. ¿Porqué es eso?
Se supone que $ 1 (o $ 2, $ 3 ...) son los argumentos dados a algún script.
Aquí hay un script de ejemplo:
#!/bin/bash
echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"
Y el ejemplo de salida
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
Supongamos que corres
entonces
fuente
En su caso, $ 1 imprime el shell de inicio de sesión predeterminado utilizado porque este argumento se pasó al script que ejecuta su shell de inicio de sesión. Pero si va a escribir y ejecutar su propio script en la sesión actual, $ 1, $ 2, ... serán los parámetros que envíe a su script.
fuente