Logo Hardware.com.br
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas

Erro em Linux Shell Scripting

#1 Por Boutrik 03/12/2015 - 21:53
Olá pessoal. Então, eu criei um arquivo 'myscript.sh' contendo isso :
[code=LScript]
#!/usr/bin/env bash

if [ $# -gt 0 ] ; then ; i=1
while [ $i -ne $# ] ; do
par$i=$($i)
i=$[$i+1]
done
fi ; i=1
while [ $i -ne $# ] ; do
echo "Par $i = $(par$i)"
i=$[$i+1]
done
[/code]
O objetivo desse codigo é verificar quantos parâmetros eu passei ao programa e imprimir 'Par 1 = batata' e assim sucessivamente.
Porém ele não funciona como planejado. Agradeço desde já,
Atenciosamente,
Boutrik
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#2 Por Fergo
06/12/2015 - 21:44
Você está criando nomes de variáveis em tempo de execução. Isso não funciona. Uma versão funcional (porém não otimizada do que você quer):
[code=bash]
#!/bin/bash

args=("$@")

if [ $# -gt 0 ]
then
i=0
while [ $i -ne $# ]
do
par[$i]=${args[$i]}
i=$[$i+1]
done
fi

i=0
while [ $i -ne $# ]
do
echo "Par $i = ${par[$i]}"
i=$[$i+1]
done
[/code]
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
Boutrik
Boutrik Membro Junior Registrado
72 Mensagens 26 Curtidas
#3 Por Boutrik
06/12/2015 - 22:13
Fergo disse:
Você está criando nomes de variáveis em tempo de execução. Isso não funciona. Uma versão funcional (porém não otimizada do que você quer):
[code=bash]
#!/bin/bash

args=("$@")

if [ $# -gt 0 ]
then
i=0
while [ $i -ne $# ]
do
par[$i]=${args[$i]}
i=$[$i+1]
done
fi

i=0
while [ $i -ne $# ]
do
echo "Par $i = ${par[$i]}"
i=$[$i+1]
done
[/code]

Vlw man, era isso mesmo que eu precisava. xD

#!/usr/bin/env bash
i=0 ; while [ "$i" -lt "1000" ] ; do
echo "Thanks xD" ; i=$[i+1] ; done
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal