日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux写程序四则运算,Shell编程之变量及四则运算

發布時間:2025/3/19 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux写程序四则运算,Shell编程之变量及四则运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Shell的學習目標

Shell的基本語法結構: 如:變量的定義、條件判斷、循環語句(for、until、while)、分支語句、函數和數組等。

基本正則表達式的應用

文件處理:grep、sed、awk工具的使用

使用shell腳本完成復雜的任務:服務搭建、批量處理。

今日目標

掌握Shell變量的定義和獲取

Shell簡單的四則運算

一、編程語言概述

計算機只能識別機器語言(也就是二進制(0和1))。但是又不能直接使用0和1,必須借助人(工具)來進行翻譯成機器語言。而人(工具)就是常說的編譯器或者是解釋器 。

編程語言的分類

編譯型語言 程序在執行之前需要一個編譯過程,把程序編譯為機器語言文件,運行時不需要重新翻譯,直接使用編譯的結果即可。程序執行效率高,以來編譯器,跨平臺性差,如C、C++。

解釋型語言 程序不需要編譯,程序在運行時由解釋器翻譯成機器語言,每次執行一次都要翻譯一次。效率比較低。如Python/Javascript/Perl/Ruby/Shell等這些都是解釋型語言。

總結:

編譯型語言比解釋型速度較快,但是不如解釋型語言跨平臺性好。

如果做底層開發或者是大型應用程序或者操作系統一般都用編譯型語言。

如果是一些服務器腳本及一些輔助的接口,對速度要要求不高。

對于各個平臺的兼容性問題的話一般則是解釋型語言。

二、Shell概述

Shell介于用戶和內核之間,負責命令的解釋。

總結: shell是人機交互的媒介。

shell的種類:

[solerho@localhost ~]$ cat /etc/shells

/bin/sh # 是bash的一個快捷方式

/bin/bash # bash是大多數Linux默認的Shell,包含的功能幾乎涵蓋了shell的所有功能。

/usr/bin/sh

/usr/bin/bash

1、什么是Shell腳本?

需要執行的命令保存到文本中,按照順序執行。解釋型的語言,所以不需要編譯。

可以使用公式來描述:

若干命令 + 腳本基本格式 + 腳本特定語法 + 思想 = Shell腳本

2、Shell腳本的用途

自動化軟件部署

LAMP/LNMP/Tomcat

自動化管理

系統初始化腳本、批量更改主機密碼、推送公鑰等。

自動化分析處理

統計網站訪問量

自動化備份

數據庫備份、日志轉儲。

自動化監控腳本

3、Shell腳本的基本寫法

3.1 腳本的第一行:字符#!指定解釋器【必寫】

#!/bin/bash 表示以下內容使用bash解釋器解析。

注意點: 如果直接將解釋器路徑固定在腳本里,可能有些系統會存在找不到解釋器的兼容性問題,所以,可以使用 #!/bin/env 解釋器進行解析。

3.2 腳本的第二部分:注釋(#)號說明,對腳本的基本信息進行描述。 例如:

#!/bin/env bash

# Name:Soler HO

# Desc:description

# path:存放路徑

# 下面是腳本的具體內容

commands

…...

3.3 腳本的第三部分:腳本要實現的具體代碼內容。

4、Shell腳本的執行方式

4.1 切換到shell腳本所在的目錄(此時叫做工作目錄)執行shell腳本

4.2 以絕對路徑的方式去執行bash shell腳本

4.3 直接使用bash 或sh 來執行bash shell腳本

4.4 在當前的shell環境中執行bash shell腳本

三、變量的定義

1、什么是變量?

可以變化的數據,是用來臨時保存數據的。

2、變量的定義格式

變量名=變量值

變量名:用來臨時保存數據。

變量值:臨時可變化的數據。

例如:

A = hello shell

echo $A #調用變量,必須使用$符號

echo ${A}

$A和${A}的區別:

相同點:都是可以調用變量

不同點:${變量名}可以截取變量的某一部分,而$變量名 不可以。

3、變量的定義規則

變量名區分大小寫

變量名不能有特殊符號

如果是有空格的字符串給變量賦值時,需要使用引號。

變量名不能以數字開頭。

注意點:不能以數字開頭不代表不能包含數字。

等號的兩邊不能有任何空格。

變量名盡量做到見其名知其意。

一般來說,變量名使用大小寫均可。

4、交互式定義變量read

目的:讓用戶自己給變量賦值,比較靈活。

語法:read [選項] 變量名

常見的選項:

選項

釋義

-p

定義提示用戶的信息

-n

定義字符數(限制變量值的長度)

-s

不顯示(不顯示用戶輸入的內容)

-t

定義超時時間,默認單位為秒(限制用戶輸入變量值的時間)

例子:

變量值來自文件的例子:

5、定義有類型的變量(declare)

目的:給變量做一些限制,固定變量的類型。例如:整型,只讀等。

用法:declare 選項 變量名=變量值

常用的選項:

選項

釋義

例子

-i

將變量設置成整數

declare -I A=23

-r

定義只讀變量

declare -r B=shell01

-a

定義普通數組;查看普通數組

-A

定義關聯數組;查看關聯數組

-x

將變量通過環境導出

declare -x AA=1234 等于 export AA=1234

四、變量的分類

1、本地變量:當前用戶自定義的變量,當前進程中有效,其他的進程及當前進程的子進程無效。

2、環境變量:當前進程有效,且可以唄子進程調用。

env — —— 查看當前用戶的環境變量

set ——— 查詢當前用戶的所有變量(臨時變量與環境變量)

export 變量名=變量值 或者是 變量名=變量值;export 變量名

3、全局變量:所有的用戶和程序都能調用,且繼承、新建的用戶也默認能調用。 相關配置文件的介紹

文件名

說明

備注

$HOME/.bashrc

當前用戶的bash信息,用戶登陸時讀取

定義別名、umaks、函數等

$HOME/.bash_profile

當前用戶的環境變量,用戶登陸時讀取

$HOME/.bash_logout

當前用戶退出當前shell時最后讀取

定義用戶退出時執行的程序

$/etc/bashrc

全局的bash信息,所有用戶都有效。

$/etc/profile

全局環境變量信息

系統和用戶都生效。

注意點:以上的文件修改后,都需要重新source讓其生效或者是退出重新登錄。

用戶登陸系統讀取相關文件的順序

* /etc/profile

* $HOME/.bash_profile

* $HOME/.bashrc

* /etc/.bashrc

* /etc/.bash_logout

4、系統變量 系統變量(內置bash中變量):shell已經固定好自身的名字和作用。

內置系統變量

含義

$?

上一條命令執行后返回的狀態,狀態值為0表示執行正常。非0表示執行異常或錯誤。

$0

當前執行的程序或腳本名

$#

腳本后面接的是參數的個數

$*

腳本后面所有的參數,參數當成一個整體輸出,每一個變量參數之間用空格隔開。

$@

腳本后面所有的參數,參數是獨立,也是全部輸出。

$1-$9

腳本后面的位置參數,$1表示第一個位置參數。

${10}-${n}

位置參數的擴展,第10個位置變量起必須擴起來(兩位數字起就擴起來。

$$

當前所在進程的進程號,如echo $$

$!

后臺運行的最后一個進程號(當前終端)。

!$

調用最后一條命令歷史中的參數

實踐操作:

五、四則運算

算術運算:默認情況下,shell就只能支持簡單的整數運算。

運算內容:加(+)、減(-)、乘(*)、除(/)、求模(余數)(%)。

1、四則運算符號

表達式

實例

$(())

echo $((1+1))

$[]

echo $[10-5]

expr

expr 10/5 注意點:乘法時,要使用轉義符(\)即,expr 10*5

let

n=1;let n+=1 等價于 let n=n+1

實例練習:

2、i++和++i

表達式

對變量的影響

對表達式的影響

i++

先賦值,再運算

++i

先運算,再賦值

實例練習:

文章如有錯誤

請大家給予多多指教

非常感謝

95年金牛座的程序員 感謝你的關注

公眾號:平頭哥Geek

總結

以上是生活随笔為你收集整理的linux写程序四则运算,Shell编程之变量及四则运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。