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

Linux【實操篇】—— Shell 編程入門、變量、運算符、條件判斷、流程控制

這篇具有很好參考價值的文章主要介紹了Linux【實操篇】—— Shell 編程入門、變量、運算符、條件判斷、流程控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、Shell 編程入門

1. 認(rèn)識 Shell

2. Shell 腳本的創(chuàng)建與執(zhí)行????????

二、Shell 變量

1. 系統(tǒng)變量和自定義變量

2. 變量的基本規(guī)則

3. 設(shè)置環(huán)境變量

4. 位置參數(shù)變量

5. 預(yù)定義變量

三、運算符

四、條件判斷

五、流程控制

1. if 語句

2. case 語句

3. for 循環(huán)

4. while 循環(huán)

六、read 讀取控制臺輸入


一、Shell 編程入門

1. 認(rèn)識 Shell

開發(fā)者在進(jìn)行服務(wù)器集群管理時,都需要編寫 Shell 程序來進(jìn)行服務(wù)器管理。Shell 是一個命令行解釋器,為用戶提供了一個向 Linux 內(nèi)核發(fā)送請求以便于運行程序的界面系統(tǒng)升級程序。用戶可以用 Shell 來啟動、掛起、停止或者編寫一些程序。

2. Shell 腳本的創(chuàng)建與執(zhí)行????????

Shell 腳本在執(zhí)行時有兩個格式上的要求:以 #!/bin/bash 開頭、必須有可執(zhí)行權(quán)限。如下我們編寫第一個 Shell 腳本:

(1)創(chuàng)建新目錄 shell 用于存放 shell 腳本;

[root@majinjian ~]# mkdir /root/shell
[root@majinjian ~]# cd /root/shell

(2)vim 編輯器新建 shell 腳本 shell.sh,輸入命令;

#!/bin/bash
echo "hello world!"

(3)這個時候查看 shell.sh 的權(quán)限,是沒有可執(zhí)行權(quán)限 x 的;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

(4)為它添加可執(zhí)行權(quán)限;

[root@majinjian shell]# chmod u+x shell.sh

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

(5)執(zhí)行文件;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

shell 腳本常用的執(zhí)行方式有兩種:

  • 輸入腳本的絕對路徑或者相對路徑(需要先賦予腳本執(zhí)行權(quán)限 x);
  • sh + 腳本(無需賦予執(zhí)行權(quán)限,直接執(zhí)行即可)。

二、Shell 變量

1. 系統(tǒng)變量和自定義變量

Linux Shell 中的變量分為系統(tǒng)變量和用戶自定義變量。系統(tǒng)變量顧名思義就是系統(tǒng)已經(jīng)設(shè)置好的變量,諸如 $HOME、$PWD、$USER、$SHELL 等都是系統(tǒng)變量。使用指令 set 可以查看系統(tǒng)中所有的系統(tǒng)變量。我們常用較多的是自定義變量,基本語法如下:

  • 定義變量:變量名稱=值;
  • 撤銷變量:unset 變量名;
  • 定義靜態(tài)變量:readonly 變量名稱=值(靜態(tài)變量不能撤銷);
  • 輸出變量:$變量。

我們試著操作一下變量:

#定義變量A
A=100

#輸出變量
echo A=$A
echo "A=$A"

#撤銷變量A
unset A
echo $A

#聲明靜態(tài)的變量B = 3
readonly B=3
echo $B

執(zhí)行結(jié)果為;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

2. 變量的基本規(guī)則

在定義變量時變量名稱可以由字母、數(shù)字和下劃線組成,但不能以數(shù)字開頭;等號的兩側(cè)不能有空格;變量名稱一般為大寫。

將命令的返回值賦給變量時使用如下寫法;

  • A=`data`,表示運行 ` ` 中的命令,并把結(jié)果返回給 A;
  • A=$(data),$() 相當(dāng)于 ``。

3. 設(shè)置環(huán)境變量

  • export 變量名=變量值? //將 Shell 變量輸出為環(huán)境變量/全局變量
  • source 配置文件? //讓修改后的配置信息立即生效
  • echo $變量名? //查詢環(huán)境變量的值

案例:在 /etc/profile 文件中定義 TOMCAT_HOME 環(huán)境變量,vim 打開?/etc/profile 輸入;

export TOMCAT_HOME=/opt/tomcat

設(shè)置完之后刷新配置狀態(tài);

[root@majinjian opt]# source /etc/profile

結(jié)果如下;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

4. 位置參數(shù)變量

當(dāng)執(zhí)行一個 Shell 腳本時,如果希望獲取到命令行的參數(shù)信息,就需要使用到位置參數(shù)變量?;菊Z法有:

  • $n? //n 為數(shù)字,$0 代表命令本身,$1-9 代表第 1 到第 9 個參數(shù),10 以上的參數(shù)需要用大括號包含如 ${10}
  • $*? //代表命令行中的所有參數(shù),$* 將所有參數(shù)看成一個整體
  • $@? //這個變量也可以代表命令行中的所有參數(shù),不過 $@ 把每個參數(shù)區(qū)分對待
  • $#? //代表命令行中所有參數(shù)的個數(shù)

案例:編寫一個 Shell 腳本 position.sh,在腳本中獲取到命令行中的各個參數(shù)信息。

#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有參數(shù)=$*"
echo "$@"
echo "參數(shù)個數(shù)=$#"

運行時輸入 100 和 200 兩個參數(shù),結(jié)果如下。

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

5. 預(yù)定義變量

預(yù)定義變量就是 Shell 的設(shè)計者事先定義好的變量,可以直接在 Shell 腳本中使用。基本語法有:

  • $$? //當(dāng)前進(jìn)程的進(jìn)程號碼(PID)
  • $!? //后臺運行的最后一個進(jìn)程的進(jìn)程號
  • $?? //最后一次執(zhí)行命令的返回狀態(tài),如果這個變量的值為0證明上一個命令正確執(zhí)行,如果不是 0 上一個命令沒有正確執(zhí)行

三、運算符

在 Shell 編程中有各種運算操作,語法格式為 $((運算式))$[運算式] 或者 expr m + n;如果希望將 expr 的值賦給某個變量,使用 `` 即可。

  • \*? //乘,在?`` 里面的乘應(yīng)該用此格式即 * 前添加轉(zhuǎn)義字符 \
  • /? //除
  • %? //取余

案例1:計算 (2+3)×4;

#!/bin/bash
#計算(2+3)×4的值

#方式1
result1=$(((2+3)*4))
echo "res1=$result1"

#方式2
result2=$[(2+3)*4]
echo "res2=$result2"

#方式3
result3=`expr 2 + 3`
result4=`expr $result3 \* 4`
echo "expr res4=$result4"

結(jié)果如下。

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

案例2:計算命令行兩個參數(shù)的和;

#計算命令行兩個參數(shù)的和
sum=$[$1+$2]
echo "sum=$sum"

運行時輸入 20 和 50,結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

四、條件判斷

條件判斷使用語法 [ condition ](注意 condition 前后有空格),非空會返回 true??梢允褂?$? 驗證結(jié)果,0 為 true,>1 為false。如:

  • [ hspEdu ] 會返回 true
  • [ ] 會返回 false
  • [ condition?] && echo yes?|| echo no ,前一個判斷滿足時會繼續(xù)執(zhí)行后面的語句

常用的判斷語句有:

判斷兩個字符串

  • =? //相等

判斷兩個整數(shù)

  • -lt? //小于
  • -le? //小于等于
  • -eq? //等于
  • -gt? //大于
  • -ge? //大于等于
  • -ne? //不等于

按照文件權(quán)限進(jìn)行判斷

  • -r? //有讀的權(quán)限
  • -w? //有寫的quanx
  • -x? //有執(zhí)行的權(quán)限

按照文件類型進(jìn)行判斷

  • -f? //文件存在并且是一個常規(guī)的文件
  • -e? //文件存在
  • -d? //文件存在并是一個目錄

案例:判斷 "ok" 是否等于 ok;

#!/bin/bash
if [ "ok" = "ok" ]
then
echo "equal" #如果等于則輸出 equal
fi  #否則結(jié)束

22 是否大于等于 21;

if [ 22 -ge 21 ]
then
echo "大于"
fi

/root/shell 目錄下是否有 aaa.txt 文件;

if [ -f /root/shell/aaa.txt ]
then
echo "存在"
fi

執(zhí)行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

五、流程控制

1. if 語句

if 語句的基本語法如下,需要注意 [ 條件判斷式?] 中括號與判斷式之間必須有空格。

#單分支
if [ 條件判斷式 ]
then
代碼
fi
#多分支
if [ 條件判斷式 ]
then
代碼
elif [ 條件判斷式 ]
then
代碼
fi

案例:編寫一個 shell 程序,如果輸入的參數(shù)大于等于 60,輸出“及格”,小于 60 則輸出“不及格”。

#!/bin/bash
if [ $1 -ge 60 ]
then
        echo "及格"
elif [ $1 -le 60 ]
then
        echo "不及格"
fi

運行時帶參數(shù)結(jié)果如下;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

2. case 語句

基本語法如下,其中 * 代表都不是以上的值。

case $變量名 in
"值1")
如果變量的值等于1,則執(zhí)行程序1
;;
"值2")
如果變量的值等于2,則執(zhí)行程序2
;;
......
*)
如果變量的值都不是以上的值,則執(zhí)行此程序
;;
esac

案例:編寫 Shell 程序當(dāng)命令行參數(shù)為 1 時輸出“周一”,是 2 時輸出“周二”,其他情況均輸出“other”。

#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esac

運行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

3. for 循環(huán)

for 循環(huán)有兩個基本語法,語法一:

for 變量 in 值1 值2 值3...
do
程序
done

案例1:打印命令行輸入的參數(shù);

#!/bin/bash
#使用$*
for i in "$*"
do
echo "num is $i"
done

#使用$@
for i in "$@"
do
echo "num is $i"
done

運行結(jié)果如下,這也印證了 $*(將所有參數(shù)看成一個整體)?和 $@(將參數(shù)區(qū)別對待) 的區(qū)別;

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

除此之外 for 循環(huán)還有第二個語法;

for((初始值;循環(huán)控制條件;變量變化))
do
程序
done

案例2:輸出從 1 加到 100 的值。

#!/bin/bash
sum=0
for(( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
echo "SUM=$sum"

運行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

4. while 循環(huán)

基本語法:

while [ 條件判斷式 ]
do
程序
done

案例:命令行輸入一個參數(shù) n,計算 1+2+..+n 的值;

#/bin/bash
sum=0
i=0
while [ $i -le $1 ]  #只要第i個數(shù)小于我們輸入的參數(shù),就執(zhí)行循環(huán)
do
sum=$[$sum+$i]
i=$[$i+1]  #i自增
done
echo "SUM=$SUM"

運行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

六、read 讀取控制臺輸入

在我們進(jìn)行 Shell 編程的時候,有時候也需要跟控制臺進(jìn)行交互,比如用戶動態(tài)的輸入一些數(shù)據(jù),這個時候就需要用到 read?;菊Z法為

read(選項)(參數(shù))

  • -p 制定讀取值時的提示符
  • -t 指定讀取值時的等待時間,如果沒有在規(guī)定時間內(nèi)輸入,則不再等待

案例 1:讀取控制臺輸入一個 num 值;

#!/bin/bash
read -p "輸入num1=:" num1
echo "你輸入的num1為:$num1"

運行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell

案例 2:讀取控制臺輸入一個 num 值,指定在 10 秒內(nèi)輸入;

read -t 10 -p "輸入num2=" num2
echo "你輸入的num2為:$num2"

運行結(jié)果如下:

linux shell編程,Linux 操作系統(tǒng)入門到精通,linux,服務(wù)器,運維,運維開發(fā),Shell文章來源地址http://www.zghlxwxcb.cn/news/detail-777049.html

到了這里,關(guān)于Linux【實操篇】—— 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)文章

  • 【樹莓派Linux內(nèi)核開發(fā)】入門實操篇(虛擬機Ubuntu環(huán)境搭建+內(nèi)核源碼獲取與配置+內(nèi)核交叉編譯+內(nèi)核鏡像掛載)

    【樹莓派Linux內(nèi)核開發(fā)】入門實操篇(虛擬機Ubuntu環(huán)境搭建+內(nèi)核源碼獲取與配置+內(nèi)核交叉編譯+內(nèi)核鏡像掛載)

    1.ubuntu18.04鏡像下載 打開ubuntu18.04鏡像傳送門,進(jìn)入到主頁 往下滑,找到相應(yīng)鏡像并下載 等待鏡像下載完畢即可 2.VMware軟件安裝 VMware是一款 運行在windows系統(tǒng)上的虛擬機軟件 ,可以虛擬出一臺計算機硬件,方便安裝各類操作系統(tǒng) 進(jìn)入VMware官網(wǎng)傳送門,來到主頁,往下滑,選

    2024年04月29日
    瀏覽(28)
  • C++入門編程----C++運算符(8)

    什么是運算符 運算符是讓程序執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號,用來表示針對數(shù)據(jù)的特定操作,也稱之為操作符。C++運算符分別有算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、位運算符、移位運算符、sizeof運算符、三目運算符、逗號運算符和域解析運算符。 算術(shù)

    2024年03月09日
    瀏覽(22)
  • 測牛學(xué)堂:2023軟件測試linux深入學(xué)習(xí)指南(shell文件運算符詳解)

    文件測試運算符 文件測試運算符用于檢測文件的各種屬性。 -d 檢測文件是否是目錄,是返回true,不是返回false -f 檢測圍殲是否是普通文件,是返回true,不是返回false -r 檢測文件是否可讀,是返回ture,不是返回false -w 檢測文件是否可寫,是返回true,不是返回false -e 檢測文件是否

    2023年04月25日
    瀏覽(42)
  • Linux 實操篇-實用指令

    Linux 實操篇-實用指令

    基本介紹 運行級別說明: 0 :關(guān)機 1 :單用戶【找回丟失密碼】 2:多用戶狀態(tài)沒有網(wǎng)絡(luò)服務(wù) 3:多用戶狀態(tài)有網(wǎng)絡(luò)服務(wù) 4:系統(tǒng)未使用保留給用戶 5:圖形界面 6:系統(tǒng)重啟 常用運行級別是3 和5 ,也可以指定默認(rèn)運行級別, ? 命令 :init [0123456] 在centos7 以前, /etc/inittab 文

    2024年02月08日
    瀏覽(26)
  • Linux(實操篇三)

    Linux(實操篇三)

    1.7 搜索查找類 1.7.1 find查找文件或目錄 find 指令將 從指定目錄向下遞歸地遍歷其各個子目錄 ,將滿足條件的文件顯示在終端。 基本語法 find [搜索范圍] [選項] 選項說明 -name查詢方式 按照指定的文件名查找模式查找文件 -user用戶名 查找屬于指定用戶名所有文件 -size文件大小

    2024年02月10日
    瀏覽(20)
  • Linux(實操篇一)

    Linux(實操篇一)

    Shell 可以看作是一個命令解釋器,為我們提供了交互式的文本控制臺界面。我們可以 通過終端控制臺來輸入命令,由 shell 進(jìn)行解釋并最終交給內(nèi)核執(zhí)行。 1.1 幫助命令 1.1.1 man獲得幫助信息 基本語法 man [命令或配置文件] 功能描述:獲得幫助信息 顯示說明 NAME:命令的名稱和

    2024年02月11日
    瀏覽(21)
  • Linux—實操篇:用戶管理

    Linux—實操篇:用戶管理

    Linux系統(tǒng)是一個多用戶多任務(wù)的操作系統(tǒng),任何一個要使用系統(tǒng)資源的用戶,都必須首先向系統(tǒng)管理員申請一個 賬號,然后以這個賬號的身份進(jìn)入系統(tǒng)。 基本語法: useradd 用戶名 細(xì)節(jié)說明: 1、當(dāng)創(chuàng)建用戶成功后,會自動創(chuàng)建一個和用戶同名的家目錄 2、通過 useradd -d 指定目

    2024年02月12日
    瀏覽(16)
  • Linux(實操篇二)

    Linux(實操篇二)

    1.3 時間日期類 基本語法 date [OPTION]… [+FORMAT] 選項說明 -d時間字符串 顯示指定的“時間字符串”表示的時間,而非當(dāng)前時間 -s日期時間 設(shè)置系統(tǒng)日期時間 參數(shù)說明 +日期時間格式 指定顯示時使用的日期時間格式 1.3.1 date顯示當(dāng)前時間 基本語法 (1)date 功能描述:顯示當(dāng)前時

    2024年02月11日
    瀏覽(15)
  • 9 Linux實操篇-實用指令

    學(xué)習(xí)視頻來自于B站【小白入門 通俗易懂】2021韓順平 一周學(xué)會Linux。 可能會用到的資料有如下所示,下載鏈接見文末: 《鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇 第四版》 1 《鳥哥的Linux私房菜 服務(wù)器架設(shè)篇 第三版》 2 《韓順平_2021圖解Linux全面升級》 3 本章將介紹在Linux會大量使用的

    2024年02月15日
    瀏覽(21)
  • Linux 實操篇--定時任務(wù)調(diào)度

    Linux 實操篇--定時任務(wù)調(diào)度

    crontab 進(jìn)行定時任務(wù)的設(shè)置 概述 任務(wù)調(diào)度:是指系統(tǒng)在某個時間執(zhí)行的特定的命令或程序。 任務(wù)調(diào)度分類:1.系統(tǒng)工作:有些重要的工作必須周而復(fù)始地執(zhí)行。如病毒掃描等 個別用戶工作:個別用戶可能希望執(zhí)行某些程序,比如對mysql 數(shù)據(jù)庫的備份。 示意圖 基本語法 cron

    2024年02月07日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包