問題:
時々、コマンドライン環境で簡単な演算を行う必要があります。例えば。次の出力が与えられます:
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)
コマンドラインで計算する簡単な方法は何ですか パーティション3と5の間の未割り当てスペースのサイズ?
私がすでに試したこと:
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
ここで、太字 上記は、単純な236-192
を実行するために入力する必要があるすべてのものです。 bc 1+1
として エコーFile 1+1 is unavailable.
expr
expr 236 - 192
スペースを入力する必要がある場所 expr 1+1
としての演算子の前後 1+1
をエコーするだけです 。
承認された回答:
bc
の使用に伴う冗長性の量を大幅に減らすことができます :
$ bc <<<"236-192"
44
$ bc <<<"1+1"
2
(シェルがそれをサポートしていると仮定します。)
関数としてそれを使用したい場合:
$ c() { printf "%sn" "$*" | bc }
$ c 1+1
2
c
を保存します いつでも利用できるようにしたい場合は、お気に入りのシェル起動ファイルで定義します。