Problem:
Hin und wieder muss ich einfache Arithmetik in einer Befehlszeilenumgebung durchführen. Z.B. bei folgender Ausgabe:
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)
Was ist eine einfache Möglichkeit, auf der Befehlszeile zu berechnen die Größe des nicht zugeordneten Speicherplatzes zwischen Partition 3 und 5?
Was ich bereits ausprobiert habe:
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
wo die fett Oben ist alles, was ich eingeben muss, um einen einfachen 236-192
zu machen als bc 1+1
echos File 1+1 is unavailable.
Ausdruck
expr 236 - 192
wo ich Leerzeichen eingeben muss vor und nach dem Operator als expr 1+1
gibt nur 1+1
wieder .
Akzeptierte Antwort:
Sie können die Menge an Ausführlichkeit, die mit der Verwendung von bc
verbunden ist, erheblich reduzieren :
$ bc <<<"236-192"
44
$ bc <<<"1+1"
2
(vorausgesetzt, Ihre Shell unterstützt das).
Wenn Sie das lieber als Funktion haben möchten:
$ c() { printf "%sn" "$*" | bc }
$ c 1+1
2
Speichern Sie den c
Definition in Ihrer bevorzugten Shell-Startdatei, wenn Sie sie immer verfügbar machen möchten.