久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SHELL編程之變量定義

 精品唯居 2022-11-13

SHELL編程模塊課程目標(biāo)

  • ① Shell的基本語法結(jié)構(gòu)

    如:變量定義、條件判斷,、循環(huán)語句(for,、until,、while)、分支語句,、函數(shù)和數(shù)組等,;

    ② 基本正則表達(dá)式的運(yùn)用;

    ③ 文件處理三劍客:grep、sed,、awk工具的使用,;

    ④ 使用shell腳本完成一些較復(fù)雜的任務(wù),如:服務(wù)搭建,、批量處理等,。

    說明:以上內(nèi)容僅僅是基本要求,還有很多更深更難的語法需要擴(kuò)充學(xué)習(xí),。

  • 本節(jié)目標(biāo)

    • 熟練掌握shell變量的定義和獲?。ㄖ攸c(diǎn))
    • 能夠進(jìn)行shell簡單的四則運(yùn)算

一,、SHELL介紹

前言:

計(jì)算機(jī)只能認(rèn)識(shí)(識(shí)別)機(jī)器語言(0和1),,如(11000000 這種)。但是,,我們的程序猿們不能直接去寫01這樣的代碼,,所以,要想將程序猿所開發(fā)的代碼在計(jì)算機(jī)上運(yùn)行,,就必須找"人"(工具)來翻譯成機(jī)器語言,,這個(gè)"人"(工具)就是我們常常所說的編譯器或者解釋器

1. 編程語言分類

  • 編譯型語言:

? 程序在執(zhí)行之前需要一個(gè)專門的編譯過程,,把程序編譯成為機(jī)器語言文件,,運(yùn)行時(shí)不需要重新翻譯,,直接使用編譯的結(jié)果就行了,。程序執(zhí)行效率高,依賴編譯器,,跨平臺(tái)性差些,。如C、C++

  • 解釋型語言:

? 程序不需要編譯,,程序在運(yùn)行時(shí)由解釋器翻譯成機(jī)器語言,,每執(zhí)行一次都要翻譯一次。因此效率比較低,。比如Python/JavaScript/ Perl /ruby/Shell等都是解釋型語言,。

  • 總結(jié)

編譯型語言比解釋型語言速度較快,但是不如解釋型語言跨平臺(tái)性好,。如果做底層開發(fā)或者大型應(yīng)用程序或者操作系開發(fā)一般都用編譯型語言,;如果是一些服務(wù)器腳本及一些輔助的接口,,對(duì)速度要求不高、對(duì)各個(gè)平臺(tái)的兼容性有要求的話則一般都用解釋型語言,。

2. shell簡介

總結(jié):

  • shell就是人機(jī)交互的一個(gè)橋梁
  • shell的種類
[root@MissHou ~]# cat /etc/shells 
/bin/sh				#是bash的一個(gè)快捷方式
/bin/bash			#bash是大多數(shù)Linux默認(rèn)的shell,,包含的功能幾乎可以涵蓋shell所有的功能
/sbin/nologin		#表示非交互,不能登錄操作系統(tǒng)
/bin/dash			#小巧,,高效,,功能相比少一些

/bin/csh				#具有C語言風(fēng)格的一種shell,具有許多特性,,但也有一些缺陷
/bin/tcsh			#是csh的增強(qiáng)版,,完全兼容csh

思考:終端和shell有什么關(guān)系?

3. shell腳本

㈠ 什么是shell腳本,?

  • 一句話概括

簡單來說就是將需要執(zhí)行的命令保存到文本中,按照順序執(zhí)行,。它是解釋型的,,意味著不需要編譯。

  • 準(zhǔn)確敘述

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

㈡ 什么時(shí)候用到腳本?

重復(fù)化,、復(fù)雜化的工作,,通過把工作的命令寫成腳本,以后僅僅需要執(zhí)行腳本就能完成這些工作,。

㈢ shell腳本能干啥?

①自動(dòng)化軟件部署 LAMP/LNMP/Tomcat...

②自動(dòng)化管理 系統(tǒng)初始化腳本,、批量更改主機(jī)密碼、推送公鑰...

自動(dòng)化分析處理 統(tǒng)計(jì)網(wǎng)站訪問量

自動(dòng)化備份 數(shù)據(jù)庫備份,、日志轉(zhuǎn)儲(chǔ)...

⑤自動(dòng)化監(jiān)控腳本

㈣ 如何學(xué)習(xí)shell腳本?

  1. 盡可能記憶更多的命令(記憶命令使用功能和場(chǎng)景)
  2. 掌握腳本的標(biāo)準(zhǔn)的格式(指定魔法字節(jié),、使用標(biāo)準(zhǔn)的執(zhí)行方式運(yùn)行腳本)
  3. 必須熟悉掌握腳本的基本語法(重點(diǎn))

㈤ 學(xué)習(xí)shell腳本的秘訣

多看(看懂)——>模仿(多練)——>多思考(多寫)

㈥ shell腳本的基本寫法

1)腳本第一行,,魔法字符#!指定解釋器【必寫

#!/bin/bash 表示以下內(nèi)容使用bash解釋器解析

注意:
如果直接將解釋器路徑寫死在腳本里,可能在某些系統(tǒng)就會(huì)存在找不到解釋器的兼容性問題,,所以可以使用:#!/bin/env 解釋器 #!/bin/env bash

2)腳本第二部分,,注釋(#號(hào))說明,對(duì)腳本的基本信息進(jìn)行描述【可選】

#!/bin/env bash

# 以下內(nèi)容是對(duì)腳本的基本信息的描述
# Name: 名字
# Desc:描述describe
# Path:存放路徑
# Usage:用法
# Update:更新時(shí)間

#下面就是腳本的具體內(nèi)容
commands
...

3)腳本第三部分,,腳本要實(shí)現(xiàn)的具體代碼內(nèi)容

㈦ shell腳本的執(zhí)行方法

  • 標(biāo)準(zhǔn)腳本執(zhí)行方法(建議)
1) 編寫人生第一個(gè)shell腳本
[root@MissHou shell01]# cat first_shell.sh
#!/bin/env bash

# 以下內(nèi)容是對(duì)腳本的基本信息的描述
# Name: first_shell.sh
# Desc: num1
# Path: /shell01/first_shell.sh
# Usage:/shell01/first_shell.sh
# Update:2019-05-05

echo "hello world"
echo "hello world"
echo "hello world"

2) 腳本增加可執(zhí)行權(quán)限
[root@MissHou shell01]# chmod +x first_shell.sh

3) 標(biāo)準(zhǔn)方式執(zhí)行腳本
[root@MissHou shell01]# pwd
/shell01
[root@MissHou shell01]# /shell01/first_shell.sh
或者
[root@MissHou shell01]# ./first_shell.sh

注意:標(biāo)準(zhǔn)執(zhí)行方式腳本必須要有可執(zhí)行權(quán)限,。
  • 非標(biāo)準(zhǔn)的執(zhí)行方法(不建議)
  1. 直接在命令行指定解釋器執(zhí)行
[root@MissHou shell01]# bash first_shell.sh
[root@MissHou shell01]# sh first_shell.sh
[root@MissHou shell01]# bash -x first_shell.sh
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
----------------
-x:一般用于排錯(cuò),查看腳本的執(zhí)行過程
-n:用來查看腳本的語法是否有問題
------------
  1. 使用source命令讀取腳本文件,執(zhí)行文件里的代碼
[root@MissHou shell01]# source first_shell.sh
hello world
hello world
hello world

小試牛刀:寫一個(gè)木有靈魂的腳本,,要求如下:

  1. 刪除/tmp/目錄下的所有文件

  2. 然后在/tmp目錄里創(chuàng)建3個(gè)目錄,,分別是dir1~dir3

  3. 拷貝/etc/hosts文件到剛創(chuàng)建的dir1目錄里

  4. 最后打印"報(bào)告首長,任務(wù)已于2019-05-05 10:10:10時(shí)間完成"內(nèi)容

    echo "報(bào)告首長,,任務(wù)已于$(date +'%F %T')"

二,、變量的定義

1. 變量是什么,?

一句話概括:變量是用來臨時(shí)保存數(shù)據(jù)的,,該數(shù)據(jù)是可以變化的數(shù)據(jù)。

2. 什么時(shí)候需要定義變量,?

  • 如果某個(gè)內(nèi)容需要多次使用,并且在代碼中重復(fù)出現(xiàn),,那么可以用變量代表該內(nèi)容,。這樣在修改內(nèi)容的時(shí)候,僅僅需要修改變量的值,。
  • 在代碼運(yùn)作的過程中,,可能會(huì)把某些命令的執(zhí)行結(jié)果保存起來,后續(xù)代碼需要使用這些結(jié)果,,就可以直接使用這個(gè)變量,。

3.變量如何定義,?

*變量名=====變量值*

變量名:用來臨時(shí)保存數(shù)據(jù)的

變量值:就是臨時(shí)的可變化的數(shù)據(jù)

[root@MissHou ~]# A=hello			定義變量A
[root@MissHou ~]# echo $A			調(diào)用變量A,,要給錢的,不是人民幣是美元"$"
hello
[root@MissHou ~]# echo ${A}		還可以這樣調(diào)用,,不管你的姿勢(shì)多優(yōu)雅,,總之要給錢
hello
[root@MissHou ~]# A=world			因?yàn)槭亲兞克钥梢宰儯魄閯e戀是常事
[root@MissHou ~]# echo $A			不管你是誰,,只要調(diào)用就要給錢
world
[root@MissHou ~]# unset A			不跟你玩了,,取消變量
[root@MissHou ~]# echo $A			從此,我單身了,,你可以給我介紹任何人

4. 變量的定義規(guī)則

雖然可以給變量(變量名)賦予任何值,;但是,對(duì)于變量名也是要求的,!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多