1. 程式人生 > >shell指令碼程式設計實現計算器功能並根據選擇將其保存於檔案中

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 是一