我是shell脚本新手。我的输入文件如下所示:
ONE=`sed -n '1p' file`;
TWO=`sed -n '2p' file`;
THREE=`sed -n '3p' file`;
我读了这个文件,因为每行都是一个变量。
OPTIONS
现在,我需要对这些变量进行一些计算(如乘法,除法......)。 任何人请指教。
答案 0 :(得分:1)
bash
不支持浮点运算(仅整数运算)。您需要将操作传递给bc
等工具。
例如:
DIV=$(echo "scale=3; $ONE/$TWO" | bc)
echo $DIV
MUL=$(echo "scale=3; $ONE/$DIV" | bc)
echo $MUL
答案 1 :(得分:0)
您可以使用bc
执行此操作。例如,echo "$ONE + $TWO + $THREE" | bc
给出这些数字的总和。
答案 2 :(得分:0)
你可以这样做:
class User < ApplicationRecord
boolean_scope :verified, :unverified
end
class Message < ApplicationRecord
boolean_scope :sent, :pending
end
答案 3 :(得分:0)
“ awk”命令是转换并对其进行操作的有用替代方法。
第1步:在代码上方放置带有awk命令的方法。
calc(){ awk "BEGIN { print "$*" }"; }
第2步:在bash上,您可以调用此方法并简单地进行十进制运算。
FOUR=$(calc $ONE*$TWO/$THREE)
注意:如果只想将字符串转换为十进制,则可以尝试以下方法:
DECIMAL_ONE=$(calc $ONE*1)