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