shell脚本除法
Ⅰ 在 shell 里, 4%3 是什么
%在编程语言中,一般是用来求余数,但是在shell中不是,shell虽然是程序设计语言,但也是Linux的命令语言,而%在Linux中在符号中一般代表变量,有系统变量和自定义变量,在运算式中表示除法,可以说4%3是算式除法。也有可能是逻辑运算,无法确定。
Ⅱ shell脚本中使用for.do循环语句列出从1到100的数字中能够被3整除的数求出他们的和并输出文件命名为sum.sh
#!/bin/bash
sum=0
for i in {1..100}
do
if [ $(( $i % 3 )) -eq 0 ]
then
echo $i
sum=$(( $sum + $i ))
fi
done
echo "sum is: $sum"
保存为sum.sh
Ⅲ shell 脚本里面从一个文本里面读出一个数字,如何转换成整数我需要用这个数字进行加减乘除
可以参考下面几种方法:
法一:
echo ${var%.*} #这个是直接去除小数点及后面所有内容,只用于bash
法二:
echo $var | awk -F. '{print $1}' #以小数点为分隔符取第一个字段
法三:
echo $var | awk '{print int($0)}' #awk中可直接使用C函数取整
(3)shell脚本除法扩展阅读:
shell脚本
shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。
更明白地来说,shell script就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令。
Ⅳ shell编程case语句乘除法问题
* 在case语句是匹配未知全部的,类似c语言的switch case 中的default,肯定是放最后的。要匹配*可以用转义字符\
Ⅳ shelll脚本的算术表达式的除法是哪个符号
shell中常用的特殊符号罗列如下:
# ; ;; . , / \\ 'string'| ! $ ${} $? $$ $*
\"string\"* ** ? : ^ $# $@ `command`{} [] [[]] () (())
|| && {xx,yy,zz,...}~ ~+ ~- & \\<...\\> + - %= == !=
Ⅵ 刚学shell脚本写了个小 计算器,加减除都可以,乘法不行,哪儿错了
你的问题在:elif [ $fangfa = " \* " ]; 这句并不能判断到“*“乘号;
正确的结果如下:
#!/bin/bash
echo "first number"
read a
echo "fangfa"
read fangfa
echo "second number"
read b
if [ "$fangfa" = "+" ];then
echo $(($a+$b))
elif [ "$fangfa" = "-" ];then
echo $(($a-$b))
elif [ "$fangfa" = "*" ];then
echo $(($a*$b))
elif [ "$fangfa" = "/" ];then
echo $(($a/$b))
fi
===============================================
脚本优化版本:
#!/bin/bash
read -p "input first number: " num1
read -p "input operator: " operator
read -p "input second number: " num2
if [ "$operator" == "+" ];then
echo " num1 + num2 = $(($num1+$num2))"
elif [ "$operator" == "-" ];then
echo "num1 - num2 = $(($num1-$num2))"
elif [ "$operator" == "*" ];then
echo "num1 * num2 = $(($num1*$num2))"
elif [ "$operator" == "/" ];then
echo "num1 / num2 = $(($num1/$num2))"
fi
Ⅶ shell编程中两个非整数变量如何做加减乘除运算
假设有两个参数,$1和$2
max=0
if
[
"$1"
-ge
"$2"
]
then
max="$1"
else
max="$2"
fi
比较操作:
-ge
大于等于
-gt
大于
-eq
相等
-lt
小于
-ne
不相等
如果循环比较的话,
试试这样:
max=0
for
args
in
$*
do
if
[
"$max"
-lt
"$args"
]
then
max="$args"
fi
done
这里假设数字都是通过参数传递过来,
用max逐个跟参数比较,得出最大的.
Ⅷ 请用Shell脚本编写程序,将100以内能被3或7整除的数的和显示出来.
#!/bin/bash
sum=0
foriin`seq1100`;do
a=$[$i%3]
b=$[$i%7]
if[$a-eq0]||[$b-eq0];then
sum=$[$sum+$i]
fi
done
echo$sum
Ⅸ 求帮写个简单的shell脚本文件,在线等
#!/bin/sh
i=0
while true
do
let i+=1
[ $i -eq 10 ] && exit 0
$index=`printf "%03d" $i`
command -i ${index}_input -o ${index}_output
while true
do
grep "abcdefg" ${index}_output >/dev/null 2>&1
[ $? -eq 0 ] && break
sleep 1 # usleep 200000 根据command命令执行快慢选用一个合适的值
done
done