Em um shell Linux, o que o $ 1 supostamente deveria fazer?

10

Eu faço um echo $1 , ele imprime qual é o shell de login padrão usado.

Mas, para echo $2 , tudo que consigo é uma nova linha. Por que isso?

    
por Lazer 30.07.2010 / 11:12

3 respostas

19

$ 1 (ou $ 2, $ 3 ...) devem ser os argumentos dados a algum script.

Veja um exemplo de script:

#!/bin/bash

echo "\ is now $1"
echo "\ is now $2"
echo "\ 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
    
por 30.07.2010 / 11:27
4

$1 is the argument passed for shell script.

Suponha que você execute

./myscript.sh hello 123 

então

$1 will be hello

$2 will be 123

    
por 13.01.2013 / 07:11
3

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.

    
por 30.07.2010 / 12:34

Tags