Problém:
Tu a tam musím udělat jednoduchou aritmetiku v prostředí příkazového řádku. NAPŘ. s následujícím výstupem:
Disk /dev/sdb: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 106MB 105MB fat32 hidden, diag
2 106MB 64.1GB 64.0GB ext4
3 64.1GB 192GB 128GB ext4
5 236GB 256GB 20.0GB linux-swap(v1)
Jaký je jednoduchý způsob výpočtu na příkazovém řádku velikost nepřiděleného prostoru mezi oddíly 3 a 5?
Co jsem již vyzkoušel:
bc
bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
236-192
44
quit
kde tučné výše je vše, co potřebuji napsat, abych udělal jednoduchý 236-192
jako bc 1+1
echoes File 1+1 is unavailable.
výraz
expr 236 - 192
kde potřebuji zadat mezery před a za operátorem jako expr 1+1
jen ozvěny 1+1
.
Přijatá odpověď:
Pomocí bc
můžete výrazně snížit míru upovídanosti :
$ bc <<<"236-192"
44
$ bc <<<"1+1"
2
(za předpokladu, že to váš shell podporuje).
Pokud byste to raději měli jako funkci:
$ c() { printf "%sn" "$*" | bc }
$ c 1+1
2
Uložte c
definice ve vašem oblíbeném spouštěcím souboru shellu, pokud jej chcete mít vždy k dispozici.
„Žádný takový soubor nebo adresář“ spočívá na nainstalovaných binárních souborech Optware?
Jak provést nepřímé vyhodnocení proměnných?