shell指令碼程式設計實現計算器功能並根據選擇將其保存於檔案中
#########################################################################
# File Name: project.sh
# Author: lixiaogang
# mail: [email protected]
# Created Time: 2017年07月07日 星期五 19時13分07秒
#########################################################################
#!/bin/bash
# 程式設計方面比Windows批處理強大很多,無論是在迴圈、運算
# 不適應需要處理大任務的數學操作,尤其是浮點運算,精確運算,或者複雜的算術運
echo
echo -e "\e[1;35m ^_^ Welcome to use ^_^ \e[0m"
echo -e "\e[1;35m please enter your choice \e[0m"
function add(){ /* 加法功能 */
echo -ne "\e[1;35m Please enter the first number: \e[0m"
read var1
echo -en "\e[1;35m Please enter the second number: \e[0m"
read var2
echo -e "\e[1;35m The two numbers are ${var1} and ${var2} \e[0m"
return $((${var1}+${var2}))
}
function sub(){ /* 減法功能 */
echo -ne "\e[1;36m Please enter the first number: \e[0m"
read var1
echo -ne "\e[1;36m Please enter the second number: \e[0m"
read var2
echo -e "\e[1;36m The two numbers are ${var1} and ${var2} \e[0m"
if test ${var1} -gt ${var2}
then
return $((${var1}-${var2}))
elif [ ${var1} -le ${var2} ]
then
return -$((${var2}-${var1}))
elif [ ${var1} -eq ${var2}]
then
return 0
else
echo "^_^ ^_^ ^_^"
fi
}
function mul(){ /* 乘法功能 */
echo -ne "\e[1;35m Please enter the first number: \e[0m"
read var1
echo -ne "\e[1;35m Please enter the second number:\e[0m"
read var2
echo -e "\e[1;36m The two numbers are ${var1} and ${var2} \e[0m"
return $((${var1}*${var2}))
}
function div(){ /* 除法功能 */
echo -ne "\e[1;35m Please enter the first number: \e[0m"
read var1
echo -ne "\e[1;35m Please enter the second number:\e[0m"
read var2
echo -e "\e[1;36m The two numbers are ${var1} and ${var2} \e[0m"
return $((${var1}/${var2}))
}
function rdwr(){ /* 檔案操作功能 */
# 0-255 can only be integer can't return string
array=("yes" "no")
echo -ne "\e[1;32m 陣列元素個數有: ${#array[*]}個,分別是:\e[0m"
for value in ${array[*]} #等價於 for var in ${array[@]}
do
echo -ne "\e[1;36m \"$value\" \e[0m"
done
echo
read input # Debugging 40 minutes. Oh my god. it's crazy.
if [ ${input}=${array[0]} ]
then
# yes
touch lxg.inf
return 0
elif [[ ${input}=${array[1]} ]]
then
echo -e "\e[1;32m You chose no \e[0m"
else
echo -e "\e[1;32m Input Error! \e[0m"
fi
}
while true # while command(通常為測試條件)
do
printf "\n%s\n" " 1.calculator 2.rdwr_file"
list="Please enter your operator: \" + - * / \" "
read val
if [ ${val} -eq 1 ]
then
# -n表示echo終端列印不換行 -e使用轉義字元
echo -n " You choice is: ${val}"
echo
echo -e "\e[1;32m ${list} \e[0m"
fmat="Ubuntu> "
echo -en "\e[1;31m $fmat \e[0m"
read operator
# case 多分支選擇結構 支援 a|b|c|d)
case ${operator} in
+)
add
readonly ret=$?
echo "sum is: ${ret}"
echo -e "\e[1;31m Do you want to save the value? \"yes\" or \"no\" \e[0m"
rdwr
file=$? #最後執行的命令的結束程式碼(返回值)
if test $file -eq 0
then
DATE=`date`
echo $DATE >> lxg.inf
echo $ret >> lxg.inf
fi
;;
-)
sub
ret=$?
echo "sub is: ${ret}"
echo -e "\e[1;31m Do you want to save the value? \e[0m"
rdwr
file=$?
if test $file -eq 0
then
DATE=`date`
echo $DATE >> lxg.inf
echo $ret >> lxg.inf
fi
;;
\*)
mul
ret=$?
echo "mul is: ${ret}"
echo -e "\e[1;31m Do you want to save the value? \e[0m"
rdwr
file=$?
if test $file -eq 0
then
DATE=`date`
echo $DATE >> lxg.inf
echo $ret >> lxg.inf
fi
;;
/)
div
ret=$?
echo "div is: ${ret}"
echo -e "\e[1;31m Do you want to save the value? \e[0m"
rdwr
file=$?
if test $file -eq 0
then
DATE=`date`
echo $DATE >> lxg.inf
echo $ret >> lxg.inf
fi
;;
*) #若沒有找到匹配模式,*來匹配改值
echo -e"\e[1;31m input ${operator} error. \e[0m"
break
;;
esac
elif test ${val} -eq 2
then
echo -n "You choice is: ${val}"
# rdwr
else
echo -e "\e[1;32m You choice error. \e[0m"
fi
done
echo "Thank you. Bye"
相關推薦
shell指令碼程式設計實現計算器功能並根據選擇將其保存於檔案中
######################################################################### # File Name: project.sh # Author: lixiaogang # mail: [ema
tee可以看見輸出並將其寫入到一個檔案中
可以看見輸出並將其寫入到一個檔案中 如下使用tee命令在螢幕上看見輸出並同樣寫入到日誌檔案my.log中 ls | tee my.log tee可以保證你同時在螢幕上看到ls的輸出並寫入檔
Linux之shell指令碼程式設計例項--遍歷所有檔案,並按月份打成zip包
原始檔案形式如下圖: 經過shell指令碼處理之後,按月生成的zip包如下圖: 完成上述工作的shell指令碼如下: #下面這行程式碼並不是註釋,它的作用是表名該指令碼使用哪個shell直譯器 #! /bin/sh #變數賦值,等號=兩邊不能有空格 #需要處理的檔案目錄
使用python實現計算器功能
import 運算符 while 正則表達 技術 整數 body 功能 計算器 # 實現帶括號的復雜加減乘除優先級運算# 主要運用到了正則表達式、while循環、列表的幾種方法等。# 為實現要求的運算功能該代碼共分為兩個部分,一個是實現不帶括號的加減乘除運算的函數add_s
Linux-Shell指令碼程式設計基礎(1)
1. 我們一般在使用Linux系統的時候,都活接觸到shell指令碼的使用,例如我們經常在linux系統中使用的ls命令、cd命令等,都是衣蛾簡單而又基本的shell命令,在 linux系統中我們一般的使用如下的格式來進行shell指令碼的編寫: (1)格式 #!bin/bash e
linux下使用shell指令碼開啟多個terminal並在其中執行程式的方法
gnome-terminal(是一種模擬終端器,一說是ubuntu的terminal就叫gnome-terminal)命令用於開啟一個新的終端,直接在命令列 $ gnome-terminal 就可以開啟一個新的終端,有一些常用引數: 開啟後自動最大化 $ gnome-terminal --maxim
shell指令碼編寫改密功能
#! /bin/bash read -p "請輸入修改的使用者名稱" user num=` cat /etc/passwd | cut -f1 -d':' |grep -w $user -c ` #查詢user是否在/etc/passwd ,並計算個數 #grep -q "$usern
SHELL指令碼程式設計_1
title: SHELL指令碼程式設計_1 data: 2018-9-18 tags: [SHELL,指令碼,程式設計,學習] categories: [學習,SHELL] grammar_cjkRuby: true copyright: true 我已經瞭解瞭如何使用shell的
Linux Shell指令碼程式設計 --awk命令詳解
簡單使用: awk :對於檔案中一行行的獨處來執行操作 。 awk -F :'{print $1,$4}' :使用‘:’來分割這一行,把這一行的第一第四個域打印出來 。  
Linux命令列與shell指令碼程式設計大全(二)
十一、處理使用者輸入 命令列引數 讀取引數: $0是程式名,$1是第一個引數,$2是第二個引數,以此類推,直到第9個引數$9。當引數個數超過10以後,需要在變數數字周圍加上花括號,如${10},如果輸入到命令列的引數是字串且含有空格,需要使用引號。 #! /bin/bash echo
Linux命令列與shell指令碼程式設計大全(一)
一、基本 bash shell命令 建立檔案 : touch 連結檔案:符號連結:是一個實實在在的檔案,兩個通過符號連結在一起的檔案,彼此的內容並不相同。使用ln -s命令。 硬連結:會建立獨立的虛擬檔案,其中包含了原始檔案的資訊及位置。但他們從根本上而言是同一個檔案。原始檔案必須事
Linux命令列與shell指令碼程式設計大全(三)
十二、呈現資料 輸入和輸出 標準檔案描述符 0 STDIN 標準輸入 &n
HTML實現計算器功能
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascrip
《Linux命令列與shell指令碼程式設計大全》讀書筆記————第三章 基本的bash shell命令
本章內容 1、使用shell 2、bash手冊 3、瀏覽檔案系統 4、檔案和目錄列表 5、管理檔案和目錄 6、檢視檔案內容 3.3 bash手冊 命令: man xterm 作用:檢視檢視xterm使用者手冊 man命
《Linux命令列與shell指令碼程式設計大全》讀書筆記————第一章 初識Linux shell
本章內容 1、什麼是Linux 2、Linux核心的組成 1、1 什麼是Linux Linux課劃分為以下四部分 a)Linux核心 b)GNU工具 c)圖形化桌面環境 d)應用軟體 1.1.1 深入探究Linux核心
shell指令碼程式設計續---分支語句
if語句做條件判斷 單分支: if 判斷條件;then statement1 statement2 fi 雙分支: if 判斷條件;then &nb
shell 指令碼程式設計
編譯器、直譯器 程式語言分為:機器語言(010101 程式碼)、組合語言、高階語言(比較接近於人類的思考方 式,也接近於機器的執行特性,需要編譯器或者直譯器轉換成機器語言) 高階語言基本可以分為兩類: 靜態語言:編譯型語言,一般都是強型別的語言
用pathon實現計算器功能
實現計算類似公式的計算器程式1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) ) 一.while迴圈版本 import re s='1 - 2 * ( (60-30 +(-
shell指令碼程式設計(一)
(一)要求:1、在SHELL語句中加入必一要的註釋,以便以後閱讀和維護,註釋以”#”開頭。 2、對變數和函式命名時最好能使用有含義且容易理解的名字。 (二)內容:1、建立以下選單程式: HOST: ******** &
Linux之Shell指令碼程式設計
Shell概念 一、概念 Shell 是一個用 C 語言編寫的程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心 的服務。Ken Thompson 的 sh 是第一種 Unix Shell,Windows Explorer 是一