Article View: es.comp.os.linux.programacion
Article #14932Re: script en bash. Múltiplos de 10
From: Mauricio
Date: Sat, 02 Sep 2000 19:28
Date: Sat, 02 Sep 2000 19:28
56 lines
3131 bytes
3131 bytes
Benjamin Albi�ana Perez escribi�: BAP> �C�mo podr�a saber si una variable es m�ltiplo de 10, en bash? De principiante a principiante :) Por lo que veo, la aritm�tica que usa bash es del tipo "entera euleriana": las operaciones "divisi�n entera" (DIV) y "resto" (REM) devuelven, respect. el cociente y el resto de la divisi�n de los dos operandos: Ej: 31 DIV 10 = 3; 31 REM 10 = 1; 31 DIV -10 = -3; 31 REM -10 = -1; -31 DIV 10 = -3; -31 REM 10 = -1; -31 DIV -10 = 3; -31 REM -10 = 1; Para averiguar si un n�mero m es m�ltiplo de otro n s�lo hay que comprobar si $((m REM n)) es cero. Y para completar la explicaci�n (esto no tiene nada que ver con el bash): Los lenguajes de programaci�n normalmente usan una "aritm�tica de m�dulos" (congruencia), en la que las operaciones "divisi�n" (DIV) y "m�dulo" (MOD) quedan definidas de esta forma: Sea Q = m DIV n, R = m MOD n; entonces Q*n + R = m, 0 <= R < n (esto es, la definici�n habitual de cociente y resto, salvo que R aqu� no puede tomar valores negativos). Ej: 31 DIV 10 = 3; 31 MOD 10 = 1 ya que 3*10 + 1 = 31 -31 DIV 10 = -4; -31 MOD 10 = 9 ya que -4*10 + 9 = -31 Ambas aritm�ticas dan el mismo resultado cuando los dos operandos son positivos, pero difieren cuando el dividendo es negativo (el caso del divisor negativo no est� definido en la 2da). La operaci�n MOD tambi�n se emplea a menudo para comprobar si un n�mero es m�ltiplo de otro. BAP> Tengo un script que corro todos los d�as con el cron, pero ser�a m�s BAP> pr�ctico si supiera lo de arriba. Si es posible, prefiero que me BAP> digais el camino, man snaf�, p.ej., y no la soluci�n directa. Por BAP> hacerlo divertido. Como no quieres la soluci�n directa, no he puesto el s�mbolo que usa el bash para la operaci�n REM. Pista: "resto" en ingl�s se dice con una de estas palabras: remainder, residual, residue, residuum, rest :))) S�, voy a dejar los porros. Y si alguien me pregunta, negar� toda relaci�n con este mensaje :) Saludos. -- Debian GNU/Linux
Technical Details
Message-ID:
<nckro8.inv.ln@127.0.0.1>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeed.icl.net!news.algonet.se!algonet!newsfeed1.swip.net!swipnet!news-sto.telia.net!newsfeed.bcn.ttd.net!news.bcn.ttd.net!not-for-mailReferences:
<slrn8r2dqo.q1a.benjamin@lamanonegra.net.dhis.org>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,1b6698bfa9f7b951
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2000-09-02 12:31:37 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-east!supernews.com!newscon01.news.prodigy.com!prodigy.com!newsfeed.cwix.com!newsfeed.icl.net!news.algonet.se!algonet!newsfeed1.swip.net!swipnet!news-sto.telia.net!newsfeed.bcn.ttd.net!news.bcn.ttd.net!not-for-mail
From: Mauricio <tas@subdimension.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: script en bash. Múltiplos de 10
Date: Sat, 2 Sep 2000 21:28:23 +0200
Organization: Bits & Bobs Inc.
Lines: 56
Message-ID: <nckro8.inv.ln@127.0.0.1>
References: <slrn8r2dqo.q1a.benjamin@lamanonegra.net.dhis.org>
NNTP-Posting-Host: acceso-55.mad.idec.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: tin/1.4.1-19991201 ("Polish") (UNIX) (Linux/2.2.16 (i586))