Zoeken…
Wiskunde met dc
dc
is een van de oudste talen op Unix.
Het maakt gebruik van de omgekeerde polijstnotatie , wat betekent dat u eerst nummers stapelt en vervolgens bewerkingen uitvoert. Bijvoorbeeld 1+1
wordt geschreven als 1 1+
.
Gebruik de opdracht p
om een element vanaf de bovenkant van de stapel af te drukken
echo '2 3 + p' | dc
5
or
dc <<< '2 3 + p'
5
U kunt het bovenste element vele malen afdrukken
dc <<< '1 1 + p 2 + p'
2
4
Gebruik voor negatieve getallen het voorvoegsel _
dc <<< '_1 p'
-1
U kunt ook hoofdletters van A to F
voor cijfers tussen 10 and 15
en .
als een decimaal punt
dc <<< 'A.4 p'
10.4
dc
gebruikt abitrary precisie, wat betekent dat de precisie alleen wordt beperkt door het beschikbare geheugen. Standaard is de precisie ingesteld op 0 decimalen
dc <<< '4 3 / p'
1
We kunnen de precisie verhogen met opdracht k
. 2k
zal gebruiken
dc <<< '2k 4 3 / p'
1.33
dc <<< '4k 4 3 / p'
1.3333
Je kunt het ook over meerdere lijnen gebruiken
dc << EOF
1 1 +
3 *
p
EOF
6
bc
is een preprocessor voordc
.
Wiskunde met bc
bc
is een willekeurige taal voor nauwkeurige rekenmachines. Het kan interactief worden gebruikt of worden uitgevoerd vanaf de opdrachtregel.
Het kan bijvoorbeeld het resultaat van een uitdrukking afdrukken:
echo '2 + 3' | bc
5
echo '12 / 5' | bc
2
Voor rekenkundig zwevende post kunt u standaardbibliotheek bc -l
importeren:
echo '12 / 5' | bc -l
2.40000000000000000000
Het kan worden gebruikt voor het vergelijken van uitdrukkingen:
echo '8 > 5' | bc
1
echo '10 == 11' | bc
0
echo '10 == 10 && 8 > 3' | bc
1
Wiskunde met bash-mogelijkheden
Rekenkundige berekeningen kunnen ook worden uitgevoerd zonder andere programma's zoals deze:
Vermenigvuldiging:
echo $((5 * 2))
10
Divisie:
echo $((5 / 2))
2
modulo:
echo $((5 % 2))
1
machtsverheffen:
echo $((5 ** 2))
25
Wiskunde met expr
expr
of Evaluate expressions
evalueert een expressie en schrijft het resultaat op standaard uitvoer
Elementaire rekenkunde
expr 2 + 3
5
Als je vermenigvuldigt, moet je aan het *
-teken ontsnappen
expr 2 \* 3
6
U kunt ook variabelen gebruiken
a=2
expr $a + 3
5
Houd er rekening mee dat het alleen gehele getallen ondersteunt, dus uitdrukking als deze
expr 3.0 / 2
geeft een fout expr: not a decimal number: '3.0'
.
Het ondersteunt reguliere expressie om patronen te matchen
expr 'Hello World' : 'Hell\(.*\)rld'
o Wo
Of zoek de index van het eerste teken in de zoekreeks
Dit zal
expr: syntax error
gooienexpr: syntax error
op Mac OS X , omdat het BSD expr gebruikt die geen indexcommando heeft, terwijl expr op Linux over het algemeen GNU expr is
expr index hello l
3
expr index 'hello' 'lo'
3