Skip to main content
`*` is a glob character and needs quoted. $((...)) and `...` undergo split+glob. Optimisation for bash/zsh/ksh93
Source Link
Stéphane Chazelas
  • 586.8k
  • 96
  • 1.1k
  • 1.7k

echo `cat /sys/class/block/sda2/size`*512 | bc

echo "`cat /sys/class/block/sda2/size`*512" | bc

or if you use bash or any other POSIX-like shell whose arithmetic operators work with 64bit integers, you don't even need to call bc

echo $((512*$(cat /sys/class/block/sda2/size)))bc

echo "$((512*$(cat /sys/class/block/sda2/size)))"

gives the size in byte.

The call to cat and fork (except for bash) can be optimised away with bash, ksh93 and zsh with:

echo "$((512*$(</sys/class/block/sda2/size)))"

echo `cat /sys/class/block/sda2/size`*512 | bc

or if you use bash, you don't even need to call bc

echo $((512*$(cat /sys/class/block/sda2/size)))

gives size in byte

echo "`cat /sys/class/block/sda2/size`*512" | bc

or if you use bash or any other POSIX-like shell whose arithmetic operators work with 64bit integers, you don't even need to call bc

echo "$((512*$(cat /sys/class/block/sda2/size)))"

gives the size in byte.

The call to cat and fork (except for bash) can be optimised away with bash, ksh93 and zsh with:

echo "$((512*$(</sys/class/block/sda2/size)))"
Bash has all internal arithmetic code. You don't need to call bc
Source Link

echo `cat /sys/class/block/sda2/size`*512 | bc

or if you use bash, you don't even need to call bc

echo $((512*$(cat /sys/class/block/sda2/size)))

gives size in byte

echo `cat /sys/class/block/sda2/size`*512 | bc

gives size in byte

echo `cat /sys/class/block/sda2/size`*512 | bc

or if you use bash, you don't even need to call bc

echo $((512*$(cat /sys/class/block/sda2/size)))

gives size in byte

echo ``cat /sys/class/block/sda2/size*512 | bc`echo `cat /sys/class/block/sda2/size`*512 | bc

gives size in byte

echo ``cat /sys/class/block/sda2/size*512 | bc`

gives size in byte

echo `cat /sys/class/block/sda2/size`*512 | bc

gives size in byte

Post Migrated Here from stackoverflow.com (revisions)
Source Link
ray
ray
Loading