题主你好,
你这个问题其实涉及的是linux中的两个概念: 一个是"将命令的输出结果赋值给变量", 另一个是"linux如何进行四则运算".
-----将命令的输出结果赋值给变量-----
linux下可以使用: 变量名=`语句` 的语句将"语句"的输出结果,赋值给"变量名", 见例子:
*.需要注意的是将语句包围起来的是反引号,即键盘左上角Esc下面那个键.
-----linux如何进行四则运算-----
linux下, 四则运算的语句是: $((表达式)), 见例子:
*.还有一点需要注意的是,linux下的变量赋值时,等号两边都不能有空格.
-----
有了上面的知识作铺垫,题主的问题也有好解决了:
=====
希望可以帮到题主, 欢迎追问.
原来我�.shellåç计ç®å¨ï¼[root@liuxiting testdir]# cat calculator.sh #!/bin/bashecho "usage: 1+3 <Enter>,q <Enter>is quit"while [ 1 ]doread -p "->>" str 1>>/dev/nulla=`echo $str |awk -F '+|-|*|/' '{print $1}'`if [ $a == q ]thenbreakfib=`echo $str |awk -F '+|-|*|/' '{print $2}'`o=`echo $str |grep -o "[[:punct:]]" | grep -v "\."`case $o in+) awk 'BEGIN{printf " =%.2f\n",'$a'+'$b'}'-) awk 'BEGIN{printf " =%.2f\n",'$a'-'$b'}'\*) awk 'BEGIN{printf " =%.2f\n",'$a'*'$b'}'/)if [ $b -eq 0 ]then echo 0 Can NOT be denominator!continuefi awk 'BEGIN{printf " =%.2f\n",'$a'/'$b'}'#^) awk 'BEGIN{printf " =%.2f\n",'$a'**'$b'}'*) echo erroresacdone åååçååºè¾åºï¼[root@liuxiting testdir]# cat daoXuShuChu.sh #!/bin/bash echo "usage: 123456 <Enter>, q <Enter>is quit"while [ 1 ]doecho -n "Pleasw enter number : " read n if [ $n == 'q' ]then breakfisd=0 rev="" on=$n echo "$n" while [ $n -gt 0 ] do sd=$(( $n % 10 )) # get Remainder n=$(( $n / 10 )) # get next digit rev=$( echo $rev$sd) done echo "$on in a reverse order $rev" done如果只做四个简单的运算这应应该可以shell脚本代码如下:
#!/bin/bash
read -p "input num1:" a
read -p "input num2:" b
read -p "input operator:" o
case $o in
+) let "res=a + b"
echo $res
-) let "res=a - b"
echo $res
/) awk 'BEGIN{printf "%.2f\n",'$a'/'$b'}'
*) let "res=a * b"
echo $res
esac
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)