¿mod, div? ¡¡

Resuelto
sassoura Mensajes publicados 21 Fecha de registro   Estado Miembro Última intervención   -  
 Usuario anónimo -
Bonjour,

¿Cómo escribir en shell el equivalente de los operadores de división euclidiana (/ en lenguaje C) y módulo (% en lenguaje C) en bash?

¡Muchas gracias! :)

Configuración: Linux / Firefox 19.0

1 respuesta

Usuario anónimo
 
Hola,

Entiendo que quieres realizar operaciones aritméticas con el intérprete de comandos (¿cuál? sh? bash? ...)

El módulo y la división se expresan de la misma manera que en C.

echo $((2%3)) 2 echo $((2%2)) 0


Lee el manual.
2
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 936
 
De hecho, lo publicó en la sección de shell, así que acabo de entender su pregunta (bueno, creo): ¿cómo se escribe en shell una división euclidiana y un módulo?

Así que tú diste la respuesta en bash...

En shell:

(mando@silk) (~) $ expr 16 / 3 5 (mando@silk) (~) $ expr 16 % 3 1


Para almacenarlo en una variable de shell:

x=$(expr 16 / 3) echo $x


Buena suerte
1
sassoura Mensajes publicados 21 Fecha de registro   Estado Miembro Última intervención  
 
es el intérprete bash... ok gracias :)
0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 936
 
¡Así que problema resuelto!

Piensa, como dice alguien que empieza por Q, en tomarte el tiempo de hacer una búsqueda en Google; para preguntas tan simples, normalmente eres capaz de encontrar la respuesta por ti mismo ;-)

Y sobre todo, intenta formular tu pregunta de manera más clara la próxima vez. Así que reescribí tu mensaje inicial para que las personas que encuentren este hilo de conversación comprendan mejor tu pregunta.

¡Buena tarde! ;-)
0
Usuario anónimo
 
hola mamiemando,

expr no es un comando bash.

los shells que cumplen con la norma POSIX saben evaluar expresiones aritméticas sobre números enteros sin tener que recurrir a programas externos, como he mostrado, entre $(( )).
0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 936
 
Me parecía que el operador $(( )) era específico de bash, pero puedo estar equivocado. Reconozco que no hago mucho shell...

Al mismo tiempo, expr forma parte de coreutils, así que es solo un paquete "necesario" en Debian, así que bueno... programa externo es una palabra demasiado grande, creo que lo tendrás en todas partes :-) Dicho esto, si la sintaxis $((...)) funciona sin importar el shell, es más concisa, más legible y más limpia...
0