Eu faço um echo $1
, ele imprime qual é o shell de login padrão usado.
Mas para a echo $2
frente, tudo o que recebo é uma nova linha. Por que é que?
$ 1 (ou $ 2, $ 3 ...) deve ser o argumento dado a algum script.
Aqui está um exemplo de script:
#!/bin/bash
echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"
E o exemplo de saída
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
Suponha que você corra
então
fonte
No seu caso, $ 1 imprime o shell de login padrão usado porque esse argumento foi passado para o script que executa seu shell de login. Mas se você escrever e executar seu próprio script na sessão atual, $ 1, $ 2, ... serão parâmetros que você enviar para o seu script.
fonte