很抱歉,如果这是一个愚蠢的问题,并且在手册页上有明显的答案。我在那里找不到很好的信息。
这是一个初学者练习的问题,其中给出了两个非零的整数,您需要编写一个脚本来在新行上打印它们的和,差,乘积和商。
当然,有很简单的方法可以一行完成,但是这就是我最终要做的事情
read x
read y
printf "$(( "$x" + "$y" ))\n"
printf "$(( "$x" - "$y" ))\n"
printf "$(( "$x" * "$y" ))\n"
printf "$(( "$x" / "$y" ))\n"
当x和y为正且x大于y时,这很好用,但是当任何操作应给出负结果(即x或y为负或x小于y)时,我都会收到错误消息
例如,如果x为50而y为20,我得到
70
30
1000
2
但是如果x为20而y为50
70
./twon: line 3: printf: -3: invalid option
printf: usage: printf [-v var] format [arguments]
1000
0
类似,如果我尝试使用负数,则让x = -50和y = 20
./twon: line 3: printf: -3: invalid option
printf: usage: printf [-v var] format [arguments]
./twon: line 4: printf: -7: invalid option
printf: usage: printf [-v var] format [arguments]
./twon: line 5: printf: -1: invalid option
printf: usage: printf [-v var] format [arguments]
./twon: line 6: printf: -2: invalid option
printf: usage: printf [-v var] format [arguments]
但是,如果我将printf
命令替换为echo -e
read x
read y
echo -e "$(( "$x" + "$y" ))"
echo -e "$(( "$x" - "$y" ))"
echo -e "$(( "$x" * "$y" ))"
echo -e "$(( "$x" / "$y" ))"
一切正常,我得到任何一对整数的所有运算结果。
我在这里想念什么?
答案 0 :(得分:0)
改用它:
printf '%s\n' "$(( x / y ))"