- Comando Simples
+ Responder ao Tópico
-
Comando Simples
É o seguinte, tenho um script shell que pego o tamanho de um arquivo com o cut e gravo num variável, agora, quando comparo esse tamanho com um número ele sempre acha que é maior que o número, o que é falso, acredito que ele esteja achando que a variável é string e não number, tem como eu dizer que é number?? Mais uma coisinha, como elimino espaços vazios de uma strig??
-
Comando Simples
cola aki exatamente como fica sua linha de comparacao
-
Comando Simples
Meu script é exatamente esse:
Ainda não está pronto, falta muito para que ele faça o que eu quero, mas preciso primeiro comparar a variável com um número
#!/bin/sh
export MES=`date +%m`
case $MES in
'01')
digito="J"
;;
'02')
digito="F"
;;
'03')
digito="M"
;;
'04')
digito="A"
;;
'05')
digito="M"
;;
'06')
digito="J"
;;
'07')
digito="J"
;;
'08')
digito="A"
;;
'09')
digito="S"
;;
'10')
digito="O"
;;
'11')
digito="N"
;;
'12')
digito="D"
;;
esac
ARQUIVO=`ls -l /cache/log/access.log|cut -d y -f 3|cut -d $digito -f 1`
echo $ARQUIVO
if [ $ARQUIVO > 126462687 ]; then
echo "isso"
else
echo "akilo"
fi
Meu problema está no if
-
Comando Simples
-
Comando Simples
c num to enganado pra comprar numeros vc tem q usar
if [ $X gt 345234 ]
ao inves de >
-
Comando Simples
ARQUIVO=`ls -l /cache/log/access.log|cut -d y -f 3|cut -d $digito -f 1`
echo $ARQUIVO
if [ $ARQUIVO gt 126462687 ]; then
echo "isso"
else
echo "akilo"
fi
Dá erro:
[: gt: binary operator expected
-
Comando Simples
coloca as 2 variaveis de comparacao entre " "
-
Comando Simples
Mesmo erro.... já to me irritando.... acho que o cut tá colocando espaços vazios depois ou antes do número....se tiver como retirar esses espaços deve resolver...
-
Comando Simples
da uma olhada aki:
http://www.tldp.org/LDP/abs/html/
to tentando achar lah
-
Comando Simples
achei, tava faltando um detalhe
if [ ${s2_val} -gt ${n} ]; then
-
Comando Simples
Valewz kra, funcionou!!!!!
-
Comando Simples
so notando... gt eh para strings, o que claro uma string tbm pode ser obtida como ascii, logo nao eh esse o escopo.
mas:
>= --- so para numeros
gt --- para strings (que engloba numeros tbm)
agora voce fez altos cut's eu preferia fazer com awk
exemplo:
fw:/home/bruno# ls -l /var/log/squid/access.log
-rw-r----- 1 proxy proxy 6895800 Jul 7 11:38 /var/log/squid/access.log
fw:/home/bruno# ls -l /var/log/squid/access.log| awk '{print $5}'
6988582
jah que voce quer o tamanho nao eh ? entao eh isso. bem mais facil