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

【Linux】shell編程(一) 變量

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

【Linux基礎(chǔ)】shell編程(一) 變量

目錄
  • 【Linux基礎(chǔ)】shell編程(一) 變量
    • 什么是shell編程
    • 如何運行shell腳本
    • 第一行 #!/bin/bash
      • 第一行叫什么?
      • WHAT IS THIS LINE CALLED?
      • 為什么要加這個,有什么用?
    • shell的變量
      • 變量的賦值和使用
      • 變量替換
      • 位置變量
      • BASH引號規(guī)則
    • 小結(jié)

什么是shell編程

簡單的命令可以在命令行中直接輸入,但是復(fù)雜的命令需要寫在腳本里。例如一個簡單的shell腳本:

#!/bin/bash

#輸出一行
echo "Hello World!"

#開始的行是注釋行,空行會被忽略。

如何運行shell腳本

  • 方式一:直接輸入腳本的相對路徑或絕對路徑

    ./run.sh
    
    • 需要給shell腳本添加可執(zhí)行權(quán)限,否則會報錯:Permission denied
  • 方式二:sh+腳本的相對路徑或絕對路徑

    sh ./run.sh
    
    • 不需要添加可執(zhí)行權(quán)限

第一行 #!/bin/bash

第一行叫什么?

WHAT IS THIS LINE CALLED?

This first line (#!/bin/bash or #!/bin/sh) has a name. It is known as ‘she-bang‘(shabang). This derives from the concatenation of the tokens sharp (#) and bang (!). It is also called as sh-bang, hashbang, poundbang or hash-pling. In computing, a she-bang is the character sequence consisting of the characters number sign and exclamation mark (#!) at the beginning of a script.

shabang,由sharp(#)和bang(!)組合而來,必須位于一個腳本的第一行

為什么要加這個,有什么用?

In Unix-like Operating Systems when a script starting with a she-bang(#!) is executed as a program, the program loader parses the rest of the script’s initial line as a interpreter-directive. Thus the specified interpreter program is run instead, passing to it as an argument the path that was used initially through the script.

In simple words, the she-bang at the head of the script tells the system that this file is a set of commands to be fed to the command interpreter indicated. Unix-like operating systems has variety of shells and each of script header lines call a different command interpreter.

如果shell看到第一行是shabang,shell就知道這個文件是一個shell腳本,并按照shabang的指引到/bin/bash找到指定的shell解釋器,然后把文件中的命令傳給shell。

解釋器可以是bash,也可以是csh等等。

SOME she-bang EXAMPLES

*#!/bin/sh :Executes the script using the Bourne shell or a compatible shell, with path /bin/sh*

*#!/bin/bash :Executes the script using the Bash shell.*

*#!/bin/csh -f :Executes the script using C shell or a compatible shell.*

*#!/usr/bin/perl -T :Executes the script using perl with the option of taint checks*

*#!/usr/bin/env python :Executes the script using python by looking up the path to the python interpreter automatically from the environment variables*

shell的變量

變量的賦值和使用

#!/bin/bash

#將一個字符串賦給變量A
LOG="monday"
echo "The value of logfile is:"

#美元符號用于變量替換
echo $LOG

運行結(jié)果:

$ sh ./variable.sh
The value of logfile is:
monday
  • 變量的賦值:

    • 變量賦值時,等號兩邊都不能打空格
    • 變量名可以由字母、數(shù)字和下劃線組成,但是不能以數(shù)字開頭
    • 變量名稱一般為大寫(代碼規(guī)范,不是語法要求)
  • 變量的使用:

    • 當需要使用變量時,要$對變量進行替換。BASH中,美元符號$用于對一個變量進行解析,shell在碰到$引導(dǎo)的變量時,會自動將其換成這個變量的值。
  • 變量作用范圍

    • 變量只在其所在腳本有效。

    • source可以強行讓一個腳本影響其父環(huán)境

      • $ source variable.sh
        The value of logfile is:
        monday
        $ echo $LOG
        monday
        
    • 與之相反,export可以讓腳本影響其子shell環(huán)境

      • $ export count=5		 ##輸出變量count
        $ bash				##啟動子shell
        $ echo $count
        5
        $ exit				##回到先前的shell中
        exit
        
    • 使用unset可以注銷變量

      • unset log
        

變量替換

  • $用于解析變量,如果要輸出這個符號,需要使用轉(zhuǎn)義字符'\'

    • $ LOG='Monday'
      $ echo
      
  • shell提供了花括號"{}"來限定一個變量的開始和結(jié)束。當需要緊跟變量輸出字母后綴時,必須使用這個功能

    • $ WORD='big'
      $ echo "This apple is ${WORD}ger"
      This apple is bigger
      

位置變量

可以向shell腳本傳命令行參數(shù),shell腳本中使用以數(shù)字命名的變量來存放這些參數(shù),稱為位置變量。

  • 簡單地說,第一個位置變量存放在$1,第二個存放在$2,以此類推。當變量數(shù)量超過10個時,需要加花括號把數(shù)字括起來。例如${10},${23}等。

  • $0用于存放腳本自己的名字。

!#/bin/bash

echo "\$0 = *$0*"
echo "\$1 = *$1*"
echo "\$2 = *$2*"
echo "\$3 = *$3*"

運行結(jié)果:

$ sh ./diaplay_para.sh first second
$0 = *display_para.sh*
$1 = *firsh*
$2 = *second*
$3 = **				##不存在第三個變量,所以為空

除了以數(shù)字命名的變量外,shell還提供了另外三個位置變量:

  • $*:包含參數(shù)列表
  • $@:包含參數(shù)列表,同上
  • $#:包含參數(shù)的個數(shù)
#!/bin/bash

#顯示有多少個參數(shù)需要列出
echo "The number of parameter is $#"

for para in $@
do
	echo $para			##也可以寫成 echo "$para"
done

運行結(jié)果:

$ sh ./list_para.sh first second
The number of parameter is 2
first
second

BASH引號規(guī)則

shell腳本中可以使用的引號有以下三種:

  • 雙引號:阻止Shell對大多數(shù)特殊字符(例如#)進行解釋。但$、`"仍然保持其特殊含義
  • 單引號:阻止Shell對所有字符進行解釋
  • 倒引號:`,這個符號通常位于鍵盤Esc鍵的下方。當用倒引號括起一個Shell命令時,命令會被執(zhí)行,并將執(zhí)行后的結(jié)果作為表達式的值。
#!/bin/bash

LOG=Saturday

echo "Today is $LOG"
echo 'Today is $LOG'

echo "Today is `date`"
echo 'Today is `date`'

運行結(jié)果:文章來源地址http://www.zghlxwxcb.cn/news/detail-475824.html

Today is Saturday
Today is $LOG

Today is Thu Jun  8 17:37:43 CST 2023
Today is `date`

小結(jié)

  • 運行Shell腳本:sh+腳本的相對路徑或絕對路徑。
  • 第一行的"#!/bin/bash"是shabang(sharp bang),表明Shell解釋器的路徑。有Shabang的文件運行時會被自動識別成Shell腳本。
  • 變量賦值時,等號兩邊不能有空格。
  • $符號后面的變量會被自動替換成變量的值。
  • 數(shù)字命名的變量表示傳入的位置變量,如\(\$1\), \(\$\{12\}\)\(\$@\)\(\$*\)表示位置變量列表,\(\$\#\)表示位置變量的數(shù)量。
  • 雙引號阻止大多數(shù)字符解析,單引號阻止所有字符解析,倒引號執(zhí)行命令并作為表達式的值。

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

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

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

相關(guān)文章

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

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

    目錄 一、Shell 編程入門 1. 認識 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) 六、rea

    2024年02月03日
    瀏覽(27)
  • lv3 嵌入式開發(fā)-5 linux shell腳本編程(概念、變量、語句)

    lv3 嵌入式開發(fā)-5 linux shell腳本編程(概念、變量、語句)

    ?Shell腳本是利用 shell 的功能所寫的一個程序。這個程序是使用純文本文件,將一些 shell 的語法與命令(含外部命令)寫在里面,搭配正則表達式、管道命令與數(shù)據(jù)流重定向等功能 ?第一個Shell腳本文件 變量來源于數(shù)學(xué),是計算機語言中能儲存計算結(jié)果或能表示值的抽象概念

    2024年02月10日
    瀏覽(56)
  • Linux編程基礎(chǔ):第4章Shell編程 課后習(xí)題

    《Linux編程基礎(chǔ)》黑馬程序員/編著?清華大學(xué)出版社 目錄 一、填空題 二、判斷題 三、單選題 四、簡答題 1、分析以下腳本代碼: 2、寫出shell腳本中while循環(huán)與until循環(huán)的基本格式,并簡述這兩種循環(huán)結(jié)構(gòu)的區(qū)別。 五、編程題 1、編寫shell腳本實現(xiàn)如下菜單界面: 2、編寫she

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

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

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

    2024年04月17日
    瀏覽(22)
  • 【Linux】shell編程基礎(chǔ)(超詳細,入門看這一篇就夠了)

    【Linux】shell編程基礎(chǔ)(超詳細,入門看這一篇就夠了)

    ????【Liunx學(xué)習(xí)記錄篇】???? 篇一:【Linux】VMware安裝unbuntu18.04虛擬機-超詳細步驟(附鏡像文件) 篇二:【Linux】ubuntu18.04系統(tǒng)基礎(chǔ)配置及操作 篇三:【Linux】用戶與組的操作詳細介紹 篇四:【Linux】管理Linux文件權(quán)限屬性介紹 篇五:【Linux】使用數(shù)字表示法和文件表示法修

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

    Linux shell編程學(xué)習(xí)筆記44:編寫一個腳本,將md5sum命令執(zhí)行結(jié)果保存到變量中,進而比較兩個文件內(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腳本編程】第十八章 文本處理與編輯器基礎(chǔ)

    【Linux命令行與Shell腳本編程】第十八章 文本處理與編輯器基礎(chǔ)

    文本處理 學(xué)習(xí)sed編輯器 sed編輯器基礎(chǔ)命令 gawk編輯器入門 sed編輯器基礎(chǔ) shell腳本可以將文本文件中各種數(shù)據(jù)的日常處理任務(wù)自動化Linux中的sed和gawk兩款工具能夠極大地簡化數(shù)據(jù)處理任務(wù)。 想要即時處理文本文件中的文本,有一個可以自動格式化、插入、修改或刪除文本元素

    2024年02月13日
    瀏覽(17)
  • Linux:概述 、安裝 、文件與目錄結(jié)構(gòu) 、vim編輯器 、網(wǎng)絡(luò)配置 、遠程登錄 、系統(tǒng)管理 、基礎(chǔ)命令 、軟件包管理 、克隆虛擬機 、shell編程

    Linux:概述 、安裝 、文件與目錄結(jié)構(gòu) 、vim編輯器 、網(wǎng)絡(luò)配置 、遠程登錄 、系統(tǒng)管理 、基礎(chǔ)命令 、軟件包管理 、克隆虛擬機 、shell編程

    2.1.1、Linux是什么? Linux是一個操作系統(tǒng)(OS) 所謂的操作系統(tǒng)就是直接用來操作計算機底層硬件的軟件。 2.1.2、Linux的出現(xiàn) 官網(wǎng): https://www.centos.org/ 進入官網(wǎng)進行下載 有很多的鏡像,以阿里云的為例: 3.3.1、下載 官網(wǎng): https://www.vmware.com/ 這是下載的企業(yè)版,30天試用期,可

    2024年02月05日
    瀏覽(60)
  • 【Linux | Shell命令】Linux 環(huán)境變量

    【Linux | Shell命令】Linux 環(huán)境變量

    Linux 系統(tǒng)中,很多程序和腳本通過環(huán)境變量來獲取系統(tǒng)信息、存儲臨時數(shù)據(jù)和配置信息,了解去哪里設(shè)置相應(yīng)的環(huán)境變量很重要。 本文總結(jié)了Linux 環(huán)境變量:它們存儲在哪里、如何使用,以及如何創(chuàng)建自己的環(huán)境變量,最后會以數(shù)組變量的用法作結(jié)。 環(huán)境變量允許在內(nèi)存中

    2024年02月12日
    瀏覽(27)
  • 【Linux】Linux環(huán)境變量的理解 --- 命令行參數(shù)、shell子進程、環(huán)境變量、本地變量…

    【Linux】Linux環(huán)境變量的理解 --- 命令行參數(shù)、shell子進程、環(huán)境變量、本地變量…

    加油布魯斯,你能行的! 1. 我們平常所用的Linux指令其實也是可執(zhí)行程序,和我們自己寫的二進制程序沒什么兩樣,那么為什么在執(zhí)行自己的程序的時候需要加上./,而執(zhí)行這些系統(tǒng)提供的指令(可執(zhí)行程序),不需要加上./呢? 2. 要執(zhí)行一個程序或者指令,必須先找到這個

    2024年01月16日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包