Soy un principiante en bash scripting. Mientras me estaba probando, me encontré con esta pregunta. Obtenga un número entero como entrada del usuario, multiplíquelo por 5 e imprima si el resultado es mayor que 14. Mi guión es algo alrededor de esto

#!/bin/bash
echo "Insert an Integer"
read input
echo $((input*5))
num1 =$((input*5))
num2 =14
if [ $num1 \> $b ];
then 
    echo "a is greater than b";
else
    echo "b is greater than a";
fi;

¿Puedo obtener ayuda?

-1
Mouli Gorripati 14 jun. 2017 a las 04:48

2 respuestas

La mejor respuesta

(()) son los corchetes que se utilizarán para todas las operaciones aritméticas, incluidas las pruebas, por lo que podría hacer:

#!/bin/bash

read -p "Enter an integer: " input

echo "You entered: $input"

(( num1 = input * 5 ))

echo "$input multiplied by 5 is $num1"

num2=14

if (( num1 > num2 ))
then
  echo "$input multiplied by 5 is greater than 14"
else
  echo "$input multiplied by 5 is NOT greater than 14"
fi
0
grail 14 jun. 2017 a las 05:08

Veo algunos problemas aquí. ¿De dónde vino $b de repente? ¿Qué es ayb? ¿Por qué las declaraciones de eco hablan de a y b?

También tiene algunos errores de sintaxis obvios, que verá si ejecuta ese script.

Prueba esto:

#!/bin/bash
echo "Enter an Integer"
read input
echo "You entered: $input"
num1=$((input*5))
echo "$input multiplied by 5 is $num1" 
num2=14
if [ $num1 -gt  $num2 ];
then 
        echo "$input multiplied by 5 is greater than 14"
    else
        echo "$input multiplied by 5 is NOT greater than 14"
fi
0
Mark J. Bobak 14 jun. 2017 a las 02:08