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")"