shell腳本的加減
1. 編寫一個SHELL腳本程序計算1到100的和
#!/銀銷bin/鋒遲游旦春bash
j=0
for ((i=1;i<=100;i++));do
j=$(($i+$j))
done
echo $j
2. 編寫shell腳本,輸入n,求1-n的累加和
#!/bin/bash
read-p"Inputvalueofn:"n
sum=0
i=1
while(($i<=$n))
do
sum=$(($sum+$i))
i=$(($i+1))
done
echo"SUMis$sum."
3. shell 腳本里的變數怎麼加1
shell 腳本里變數加一方式如下六種:
1、第一種整型變數自增方式
a=$(($a+1))
echo$a
2、第二種整型變數自增方式a=$[$a+1]
echo$a
a=`expr$a+1`
echo$a
leta++
echo$a
5、第五種整型變數自增方式leta+=1
echo$a
6、第六種整型變數自增方式((a++))
echo$a
(3)shell腳本的加減擴展閱讀:
基本上shell分兩大類:
1、圖形界面shell(Graphical User Interface shell 即 GUI shell)
應用最為廣泛的 Windows Explorer (微軟的windows系列操作系統),還有也包括廣為人知的 linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更強大的CDE、GNOME、KDE、 XFCE。
2、命令行式shell(Command Line Interface shell ,即CLI shell)
bash / sh / ksh / csh / zsh(Unix/linux 系統),cmd.exe/ 命令提示字元(Windows NT 系統),Windows PowerShell(支持 .NET Framework 技術的 Windows NT 系統),傳統意義上的shell指的是命令行式的shell,以後如果不特別註明,shell是指命令行式的shell。
4. 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
5. shell 腳本裡面從一個文本裡面讀出一個數字,如何轉換成整數我需要用這個數字進行加減乘除
可以參考下面幾種方法:
法一:
echo ${var%.*} #這個是直接去除小數點及後面所有內容,只用於bash
法二:
echo $var | awk -F. '{print $1}' #以小數點為分隔符取第一個欄位
法三:
echo $var | awk '{print int($0)}' #awk中可直接使用C函數取整
(5)shell腳本的加減擴展閱讀:
shell腳本
shell script是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與指令寫在裡面,然後用正規表示法,管道命令以及數據流重導向等功能,以達到我們所想要的處理目的。
更明白地來說,shell script就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易地就能夠一個操作執行多個命令。
6. shell 腳本里 expr $num "+" 10 &> /dev/null 是什麼意思
這應該是判斷變數num是否為整數的一種方法
利用expr做計算時變數或字元串必須是整數的規則,把一個變數或者字元串和一個已知的整數(非0)相加,看命令結果是否為0
&>/dev/null表示不保留任何輸出
如果num為整數的話,echo $?的結果是0;否則echo $?的結果是2
等同於expr $num + 1 &>/dev/null
不對的地方歡迎指正
7. 剛學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