如何优雅地将数字输入到 bc 中?

如何优雅地将数字输入到 bc 中?

xargs -Ix还有比使用以下更优雅的方法吗?

echo "283" | xargs -Ix bc -l -e "scale=2; l( x )/l(10)"

答案1

我真的不明白这里的原因xargs

printf 'scale=2; l(%s)/l(10)\n' "283" | bc -l

从文件中读取数字时的替代方案:

awk '{ printf "l(%s)/l(10)\n", $1 }' file | bc -l -e 'scale=2'

(假设 abc-e),或者bc根本没有:

awk '{ printf "%.2f\n", log($1)/log(10) }' file

答案2

未经测试bc,因为我的bc没有-e,但是这些应该可以工作。

echo "283" | xargs echo 123可以替换为. echo 123 "$(echo "283")"

所以对于你的例子

bc -l -e "scale=2; l( x )/l(10)" "$(echo "283")"

相关内容