hola a todos, tengo una duda que creo que es muy simple, como puedo saber los caracteres que tiene una linea, por ejemplo:
echo 'Introduce un nombre: '
read -p nombre
como puedo sacar el numero de caracteres del nombre que se ha introducido por teclado??
saludos
El siguiente código no es mio, pero funciona:
:getLength
set /a length+=1
set str=%*
:getLength_2
set "str=%str:~1%" && set /a length+=1
if defined str (goto :getLength_2) || (goto :eof)
Para medir la longitud sería algo como:
Set mensaje=PONAQUILOQUEQUIERAS
call :getLength %mensaje%
Y para mostrar la longitud, pues con un:
Echo El mensaje tiene %lenght% caracteres.
PD: Perdon es que le di al boton de postear sin querer xD
pitoloko, no entiendo lo que me has puesto, me lo puedes explicar??
sigo sin entender el codigo!!!
Ola
Para saber la longitud de la variable nombre (en tu ejemplo):
echo ${#nombre}
Existen más formas de hacerlo, buscando en google se encuentran rápidamente, pero esta me parece la más sencilla.
@pitoloko, es Bash, no Batch.
Hay varias, creo que ya había puesto varias, pero bueno, también puedes usar wc:
echo $string | tr -d '\n' | wc -c
echo `expr length $string`
[quote author=Leo Gutiérrez. link=topic=322977.msg1595952#msg1595952 date=1301245926]
@pitoloko, es Bash, no Batch.
[/quote]
*****, perdón xD
[s]
[/s]
Este es el codigo que yo he realizado:
echo 'Introduce una contraseña para comprobar si es segura o no: '
read -p contrasenia
echo 'Longitud: '$(#contrasenia)
for i in !'\n'
do
echo 'num: '$contrasenia
i=$(expr i \+ 1)
done
me pueden decir si podria ser algo asi para extraer el numero de caracteres??
¿por qué no usas lo que te hemos puesto en vez de reinventar la rueda?
¿O lo tienes que hacer sin usar lo que te hemos puesto?
no he usado lo que me habeis puesto porque hay cosas que no entiendo como funcionan. lo que he puesto si entiendo lo que hace.
se podria hacer de la forma que he puesto yo??
Tu código está mal porque i jamás va a tomar el valor de nueva línea, podrías caer en un ciclo infinito.
Usa esto:
echo ${#nombre}
Es lo más básico.
Una variable en Bash se puede encerrar entre corchetes
$string = ${string}, los dos hacen exactamente lo mismo.
${#string}, el símbolo # nos devuelve el número de caracteres que tiene la string.
pero si yo ago esto:
#!/bin/bash
echo 'Introduce una contraseña para comprobar si es segura o no: '
read $contrasenia
echo 'Longitud: '${#contrasenia}
el valor de longitud es 0, porque??
#!/bin/bash
echo 'Introduce una contraseña para comprobar si es segura o no: '
read contrasenia
echo -e "Longitud: ${#contrasenia}"