shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Dúvidas com o comando shift


From: Ricardo Tweeg
Subject: Re: [shell-script] Dúvidas com o comando shift
Date: Wed, 17 Dec 2014 20:22:02 +0000 (UTC)

Boa tarde Tiago,

Você vai me desculpar, mas da forma que você explicou aqui eu não entendi.
Não abusando da sua boa vontade, poderia explicar de uma forma um pouco mais simples?

Abraços
 
Atenciosamente,

Ricardo 



Em Quarta-feira, 17 de Dezembro de 2014 18:03, "Tiago Peczenyj address@hidden [shell-script]" <address@hidden> escreveu:


 
o shift vai remover os elementos do array $@ que são os argumentos que o seu script ( ou função ) recebeu.

logo vc fez

$@=(passando parametros para testar)

shift

$@=(parametros para testar) # removeu 'passando'

shift 2

$@=(para testar) # removeu 'parametros'
$@=(testar)          # removeu 'para'

2014-12-17 17:13 GMT-02:00 Ricardo Tweeg address@hidden [shell-script] <address@hidden>:
 
Boa tarde turma.


Vejam o script abaixo:
***************************

#!/bin/bash
# Programa para testar passagem de parametros (teste03)
echo
echo O programa \"$0\" recebeu \"$#\" parametros:
echo "11ª parm -> $11"
shift
echo "2ª parm -> $1"
shift 2
echo "4ª parm -> $1"

Executei o programa e tive a seguinte saída:
********************************************************

$ ./teste03 passando parametros para testar

O programa "./teste03" recebeu "4" parametros:
11ª parm -> passando1
2ª parm -> parametros
4ª parm -> testar


Dúvida:
*********

O comando "shift 2" (o "n" pode assumir qualquer valor) despreza os "n" primeiros parâmetros.
Sendo assim, já que eu coloquei "shift 2", eu estou desprezando os dois primeiros parâmetros que passei na linha de comando (passando parametros).

Em seguida eu executo um echo "4ª parm -> $1".

Já que eu desprezei os 2 primeiros parâmetros, o echo "4ª parm -> $1" não deveria mostrar o próximo parâmetro que é a palavra "para"?
Eu não entendi o motivo dele não ter mostrado o terceiro parâmetro (para) e no seu lugar ter mostrado o "testar" que é o quarto parâmetro.

Obrigado por qualquer ajuda.

Ricardo 


--
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj



reply via email to

[Prev in Thread] Current Thread [Next in Thread]