1
Bash, skrypty powłoki / liczby zmiennoprzecinkowe i zmienne
« dnia: 2020-11-15, 23:47:51 »
Hej,
Dopiero zaczynam przygodę z linuxem i natrafiłem na następujący problem:
Piszę jakiś skrypt i chciałbym wiedzieć jak można zapisać liczbę zmiennoprzecinkową, podaną przez argument, w zmiennej.
Może przedstawię to za pomocą kodu:
--------------------------------------------
#!/bin/bash
funkcja() {
let var1=$1+$2
let var2=$1-$2
if [ $var2 -ne 0 ]
then
echo "scale=2;$var1/$var2" | bc
else
echo Nie mozna dzielic przez 0
exit -1
fi
}
funckja $1 $2
---------------------------------------------
I w konsoli mogę wpisać np.
./nazwasryptu.sh 6 18
Niestety problem występuję jak chciałbym przekazać liczby zmiennoprzecinkowe np.
./nazwaskrytpu.sh 4.23 5.25
Jak mogę poradzić sobie z takim problemem?
Czy jeśli już uda mi się wpisać do var1 liczbę zmiennoprzecinkową, to warunek if będzie działał? Jeśli nie to jak mogę rozwiązać ten problem?
Z góry dziękuję za wszelką pomoc.
Dopiero zaczynam przygodę z linuxem i natrafiłem na następujący problem:
Piszę jakiś skrypt i chciałbym wiedzieć jak można zapisać liczbę zmiennoprzecinkową, podaną przez argument, w zmiennej.
Może przedstawię to za pomocą kodu:
--------------------------------------------
#!/bin/bash
funkcja() {
let var1=$1+$2
let var2=$1-$2
if [ $var2 -ne 0 ]
then
echo "scale=2;$var1/$var2" | bc
else
echo Nie mozna dzielic przez 0
exit -1
fi
}
funckja $1 $2
---------------------------------------------
I w konsoli mogę wpisać np.
./nazwasryptu.sh 6 18
Niestety problem występuję jak chciałbym przekazać liczby zmiennoprzecinkowe np.
./nazwaskrytpu.sh 4.23 5.25
Jak mogę poradzić sobie z takim problemem?
Czy jeśli już uda mi się wpisać do var1 liczbę zmiennoprzecinkową, to warunek if będzie działał? Jeśli nie to jak mogę rozwiązać ten problem?
Z góry dziękuję za wszelką pomoc.