国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 系統(tǒng)shell腳本編程筆記——腳本入門

這篇具有很好參考價值的文章主要介紹了Linux 系統(tǒng)shell腳本編程筆記——腳本入門。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1、創(chuàng)建shell腳本文件

?2、顯示消息

3、?環(huán)境變量

4、用戶變量

5、命令替換

?編輯

?6、重定向輸入與輸出

6.1、輸出重定向

?6.2、輸入重定向

?編輯

7、執(zhí)行數(shù)學(xué)運算

7.1、expr命令

7.2、bc的基本用法

?8、退出腳本


完整筆記請前往此處獲?。篽ttps://download.csdn.net/download/qq_55908180/88366003

Shell的核心是命令行提示符

1、創(chuàng)建shell腳本文件

要將shell命令放到文本文件中,首先需要用文本編譯器來創(chuàng)建一個文件,然后把命令輸入到文件中。在創(chuàng)建shell腳本文件時,必須在文件的第一行指定要使用的shell。格式是:? #!/bin/bash?一般在shell腳本中,井號(#)用作注釋。Shell不會處理腳本中的注釋行,但是,腳本文件中第一行除外,#后面的感嘆號會告訴shell用哪個shell運行腳本。例如:

  1 #!/bin/bash
  2 
  3 date
  4 who

?在編譯之前需要改一下test1的權(quán)限,因為在創(chuàng)建新文件時只有文件的屬主與屬組才有讀寫權(quán)限,所以需要用:chmod u+x test1 之后再編譯就可以正常編譯。

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?2、顯示消息

可以通過echo命令實現(xiàn)輸出的效果。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

在默認(rèn)情況下,不需要使用引號將要顯示的文本字符串劃出來,但有時字符串中出現(xiàn)引號的話就會比較麻煩。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

此時就需要用單引號或者雙引號來劃定文本字符串,如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?也可以把echo語句添加到shell腳本中任何需要顯示額外信息的地方。如:

  1 #!/bin/bash
  2 
  3 echo The time and date are:
  4 date
  5 echo "Let's see who's logged into the system:'"
  6 who

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

3、?環(huán)境變量

?在shell腳本中,可以在環(huán)境變量名之前加上美元符($)來使用這些環(huán)境變量。如:

  1 #!/bin/bash
  2 
  3 echo "User info for useid: $USER"
  4 echo UID: $UID
  5 echo HOME: $HOME

結(jié)果顯示:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?注意:echo命令中環(huán)境變量會在腳本運行時替換為當(dāng)前值,腳本在引號中出現(xiàn)美元符時,腳本會以為你在引用一個變量,這樣輸出的可能不是我們的期望值,所以想要輸出我們期望值,可以在美元符前放一個反斜線\。因為反斜線允許shell腳本將美元符解讀為實際的美元符,而不是變量。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

4、用戶變量

除了環(huán)境變量,shell腳本也允許在腳本中定義和使用自定義的變量,用戶變量可以是任何由字母、數(shù)字和下劃線組成的字符串,但是長度不超過20個,值得注意的是,用戶變量是區(qū)分大小寫的。使用等號將值賦值給用戶變量,注意在變量、等號和值之間不能出現(xiàn)空格。

注意:

1、變量名不能以數(shù)字開頭,但可以包含數(shù)字。

2、盡量避免使用shell關(guān)鍵字作為變量名,以免引起混淆。

3、常量的變量名通常使用大寫字母,例如?PI=3.14。

如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

只讀變量

可以使用 readonly 命令可以將變量定義為只讀變量,只讀變量的值不能被改變。

如下所示:

?shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?刪除變量

可以使用使用 unset 命令可以刪除變量。

使用格式:unset variable_name

注意:變量被刪除后不能再次使用。unset 命令不能刪除只讀變量。

在shell中,變量一般視作字符串,可以使用單引號或雙引號來定義字符串。

單引號字符串的限制:

1、單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的;

2、單引號字串中不能出現(xiàn)單獨一個的單引號(對單引號使用轉(zhuǎn)義符后也不行),但可成對出現(xiàn),作為字符串拼接使用。

雙引號的優(yōu)點:

1、雙引號里可以有變量

2、雙引號里可以出現(xiàn)轉(zhuǎn)義字符

5、命令替換

shell腳本中最有用的特征之一就是可以從命令輸出中提取信息,并把它賦值給變量。有兩種方法可以把命令輸出賦值給變量:

  1. 反引號字符(`
  2. $()格式

如下:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?6、重定向輸入與輸出

有時候你想保存某個命令的輸出而不僅是讓它只顯示在顯示器上,shell提供了幾個操作符,可以把命令的輸出重定向到另外一個位置。重定向可以用于輸入,也可以用于輸出

6.1、輸出重定向

最基本的重定向把命令輸出送到一個文件中。Shell用大于號(>)來實現(xiàn)這一功能。把之前顯示器上出現(xiàn)的命令輸出保存到指定的輸出文件中,如:

?shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?如果你想讓命令的輸出追加到已有文件中,而不是覆蓋文件原有內(nèi)容,可以用遠(yuǎn)大于號(>>)來追加數(shù)據(jù),如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?6.2、輸入重定向

輸入重定向的輸出重定向時正好相反的。輸入重定向是把文件的內(nèi)容重定向到命令,而不是把命令的輸出重定向到文件中。

輸入重定向符號是小于號(<):記憶方法:在命令行中,命令在左側(cè),重定向符可以理解為指向數(shù)據(jù)流動的方向,小于號說明是數(shù)據(jù)是在從輸入文件流向命令。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

Wc命令可以對文本中的數(shù)據(jù)進(jìn)行計數(shù),在默認(rèn)情況下會輸出三個值,依次為:文本的行數(shù);文本的詞數(shù);文本的字節(jié)數(shù)。

還有一種輸入重定向的方法,叫做內(nèi)聯(lián)輸入重定向。這種方法不需要使用文件進(jìn)行重定向,只需要在命令行中指定用于輸入重定向的數(shù)據(jù)就可以了。內(nèi)聯(lián)輸入重定向的符號是遠(yuǎn)小于號(<<)。除了這個符號,還要指定一個文本標(biāo)記用來劃分輸入數(shù)據(jù)的開始和結(jié)束。注意:任何字符串都可以作為文本標(biāo)記,但是在數(shù)據(jù)的開始和結(jié)尾文本標(biāo)記必須一致。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

7、執(zhí)行數(shù)學(xué)運算

對于shell腳本來說,有兩種途徑可以用來進(jìn)行數(shù)學(xué)運算。

7.1、expr命令

Expr命令允許命令在命令行上處理數(shù)學(xué)表達(dá)式,但是很笨拙。

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

操作符

描述

ARG1? |? ARG2

如果ARG1既不是null也不是0,返回ARG1,否則返回ARG2

ARG1? &? ARG2

如果沒有參數(shù)是null或者為0,返回ARG1,否則返回0

ARG1? <? ARG2

如果ARG1小于ARG2,返回1,否則為0

ARG1? <=? ARG2

如果ARG1小于或等于ARG2,返回1,否則為0

ARG1? =? ARG2

如果ARG1等于ARG2,返回1,否則為0

ARG1 !=? ARG2

如果ARG1不等于ARG2,返回1,否則為0

ARG1? >=? ARG2

如果ARG1大于或等于ARG2,返回1,否則為0

ARG1? >? ARG2

如果ARG1大于ARG2,返回1,否則為0

ARG1? +? ARG2

返回ARG1和ARG2的算數(shù)運算和

ARG1? -? ARG2

返回ARG1和ARG2的算數(shù)運算差

ARG1? *? ARG2

返回ARG1和ARG2的算數(shù)乘積

ARG1? /? ARG2

返回ARG1和ARG2的算數(shù)商

ARG1? %? ARG2

返回ARG1和ARG2的算數(shù)余數(shù)

使用方括號

在把一個數(shù)學(xué)運算結(jié)果賦值給某個變量時,可以用美元符和方括號把數(shù)學(xué)表達(dá)式包圍起來。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?這種技術(shù)也適用于腳本。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?值得注意的是:bash shell 數(shù)學(xué)運算符只支持整數(shù)運算,這是一個對進(jìn)行任何實際的數(shù)學(xué)運算的巨大的限制。

浮點解決方案

有幾種方法能夠克服數(shù)學(xué)運算的整數(shù)限制。最常見的方法是使用內(nèi)建的bash計算器bc。

7.2、bc的基本用法

Bash計算器能夠識別到:

數(shù)字(整數(shù)和浮點數(shù))

變量(簡單變量和數(shù)組)

注釋(以#或者C語言中的/* */開始的行)

表達(dá)式

編程語言(比如if-then語句)

函數(shù)

可以在shell提示符下通過bc命令訪問bash計算器。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?浮點運算是借助內(nèi)建變量scale控制的,必須把這個值設(shè)置為你希望保留的小數(shù)位數(shù),scale默認(rèn)為0。 -q命令行選項可以不顯示bash的歡迎信息。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?除了普通數(shù)字,bash計算器還支持變量。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?在腳本中使用bc

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?可以不使用數(shù)字表達(dá)式值,也可以用shell腳本定義好的變量。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?一旦變量被賦值,也可以用于其他的運算。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?但是這種方法只適用于較短的運算,如果涉及較多的數(shù)字,需要進(jìn)行大量的運算,可以使用內(nèi)聯(lián)輸入重定向來解決這個問題。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?8、退出腳本

在默認(rèn)情況下,shell腳本會以腳本的最后一個命令的退出狀態(tài)碼退出。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash

?也可以在退出時設(shè)置返回自己的退出碼,使用exit命令。注意:退出狀態(tài)為0~255的整數(shù)值,也可以用腳本中的變量作為退出碼。如:

shell 創(chuàng)建文件,shell腳本編程,linux,筆記,ubuntu,bash文章來源地址http://www.zghlxwxcb.cn/news/detail-736934.html

Linux退出狀態(tài)碼
狀態(tài)碼 描述
0 命令成功結(jié)束
1 一般性未知錯誤
2 不適合的shell命令
126 命令不可執(zhí)行
127 沒找到命令
128 無效的退出參數(shù)
128+x 與Linux信號x相關(guān)的嚴(yán)重錯誤
130 通過Ctrl+C終止的命令
255 正常范圍之外的退出狀態(tài)碼

到了這里,關(guān)于Linux 系統(tǒng)shell腳本編程筆記——腳本入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Shell腳本編程入門--Day2

    Shell腳本編程入門--Day2

    echo -n 不換行輸出 -e 解析字符串中的特殊符號 (n, r, t, b), printf是直接識別特殊符號的 eval 執(zhí)行多個命令 沒什么太大作用 exec 不創(chuàng)建子進(jìn)程執(zhí)行后面的命令, 并且exit export 設(shè)置環(huán)境變量 time 可以計算命令執(zhí)行時間 ${變量} 返回變量的值 ${#變量} 返回變量的長度 ${變量 :

    2024年02月06日
    瀏覽(18)
  • Linux——Shell腳本編程(1)

    Linux——Shell腳本編程(1)

    1)Linux運維工程師在進(jìn)行服務(wù)器集群管理時,需要編寫Shell程序來進(jìn)行服務(wù)器管理。 2)對于 JavaEE 和 Python 程序員來說,工作的需要,要求你編寫一些 Shell腳本進(jìn)行程序或者是服務(wù)器的維護(hù),比如編寫一個定時備份數(shù)據(jù)庫的腳本。 3) 對于大數(shù)據(jù)程序員來說,需要編寫Shell程序來管

    2024年02月09日
    瀏覽(45)
  • Linux_5_Shell腳本編程

    Linux_5_Shell腳本編程

    程序:算法+數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù):是程序的核心 算法:處理數(shù)據(jù)的方式 數(shù)據(jù)結(jié)構(gòu): 數(shù)據(jù)在計算機(jī)中的類型和組織方式 面向過程語言 做一件事情,排出個步驟,第一步干什么,第二步干什么,如果出現(xiàn)情況A,做什么處理,如果出現(xiàn)了情況B,做什么處理 問題規(guī)模小,可以步驟化,按部

    2024年02月13日
    瀏覽(20)
  • Linux實驗4 shell腳本編程基礎(chǔ)

    Linux實驗4 shell腳本編程基礎(chǔ)

    1.假設(shè)在/tmp下有以當(dāng)前用戶的帳號命名的目錄,請在命令行中臨時修改環(huán)境變量PATH的值,要求該目錄的路徑附加到該變量的最后。 2.請在命令行中臨時設(shè)置命令輸入提示行格式為:“當(dāng)前系統(tǒng)時間-用戶#”。 3.在命令行定義一個字符串變量str,并且賦值為“test for shell”,然

    2024年04月17日
    瀏覽(22)
  • Shell編程——弱數(shù)據(jù)類型的腳本語言快速入門指南

    Shell編程——弱數(shù)據(jù)類型的腳本語言快速入門指南

    目錄 Linux Shell 數(shù)據(jù)類型 變量類型 運算符 算術(shù)運算符 賦值運算符 拼接運算符 比較運算符 關(guān)系運算符 控制結(jié)構(gòu) 順序結(jié)構(gòu) 條件分支結(jié)構(gòu) if 條件語句 case 分支語句? 循環(huán)結(jié)構(gòu) for 循環(huán) while 循環(huán) until 循環(huán) break 語句 continue語句 函數(shù) 函數(shù)定義? 函數(shù)名 函數(shù)體 返回值 參數(shù) 函數(shù)的

    2024年02月12日
    瀏覽(97)
  • 【Linux命令行與Shell腳本編程】第十六章 Shell函數(shù)

    【Linux命令行與Shell腳本編程】第十六章 Shell函數(shù)

    腳本函數(shù)基礎(chǔ) 函數(shù)返回值 在函數(shù)中使用變量 數(shù)組變量和函數(shù) 函數(shù)遞歸 創(chuàng)建庫 在命令行中使用函數(shù) 可以將shell腳本代碼放入函數(shù)中封裝起來,這樣就能在腳本的任意位置多次使用. 函數(shù)是一個腳本代碼塊,可以并在腳本中的任何位置重用它。當(dāng)需要在腳本中使用該代碼塊時

    2024年02月14日
    瀏覽(40)
  • 3.7 Linux shell腳本編程(分支語句、循環(huán)語句)

    3.7 Linux shell腳本編程(分支語句、循環(huán)語句)

    目錄 分支語句(對標(biāo)C語言中的if) 多路分支語句(對標(biāo)C語言中的swich case) 分支語句(對標(biāo)C語言中的if) 語法結(jié)構(gòu): ? ? ? ? ?if ? ?表達(dá)式 ? ? ? ? ??? ??? ?then ?命令表 ? ? ? ? ?fi ? ? 如果表達(dá)式為真, 則執(zhí)行命令表中的命令; 否則退出if語句, 即執(zhí)行fi后面的語句。

    2024年02月02日
    瀏覽(24)
  • Linux shell編程學(xué)習(xí)筆記44:編寫一個腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個文件內(nèi)容是否相同

    Linux shell編程學(xué)習(xí)筆記44:編寫一個腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進(jìn)而比較兩個文件內(nèi)容是否相同

    在? Linux shell編程學(xué)習(xí)筆記42:md5sum https://blog.csdn.net/Purpleendurer/article/details/137125672?spm=1001.2014.3001.5501 中,我們提到編寫一個在Linux系統(tǒng)下比較兩個文件內(nèi)容是否相同的腳本。 基本思路是: 其中有兩個難點: 1.文件的md5值的獲取 2.md5值的比較 對于第1個難點,我們的解決辦法是

    2024年04月10日
    瀏覽(28)
  • 【Linux命令行與Shell腳本編程】第十四章,呈現(xiàn)數(shù)據(jù)

    【Linux命令行與Shell腳本編程】第十四章,呈現(xiàn)數(shù)據(jù)

    第十四章 呈現(xiàn)數(shù)據(jù) 1.1,標(biāo)準(zhǔn)文件描述符 文件描述符 縮寫 描述 0 STDIN 標(biāo)準(zhǔn)輸入 1 STDOUT 標(biāo)準(zhǔn)輸出 2 STDERR 標(biāo)準(zhǔn)錯誤 1.1.1,STDIN 標(biāo)準(zhǔn)輸入 1.1.2,STDOUT 標(biāo)準(zhǔn)輸出 1.1.3,STDERR 錯誤輸出 1.2,重定向錯誤 1.2.1.只重定向錯誤 n 1.2.2.重定向錯誤消息和正常輸出 2.1,臨時重定向 2.2,永久重定向 exec 4

    2023年04月25日
    瀏覽(25)
  • 【shell編程入門】stable diffusion webui的webui.sh腳本解析

    通過webui.sh,我們可以在linux系統(tǒng)下安裝虛擬環(huán)境,并啟動stable diffuson webui。 BASH_SOURCE[0] : 這是一個包含當(dāng)前 Bash 腳本文件名的數(shù)組。 ${BASH_SOURCE[0]} 表示當(dāng)前腳本的文件名。 dirname -- \\\"${BASH_SOURCE[0]}\\\" : dirname 命令用于獲取文件路徑的目錄部分。這里它獲取了 ${BASH_SOURCE[0]} 即當(dāng)前

    2024年01月21日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包