導航:首頁 > 程序命令 > shell變數命令

shell變數命令

發布時間:2022-12-31 04:08:32

㈠ 如何在shell腳本中使用變數

在shell腳本中變數的定義,只能以字母和下劃線開始,區分大小寫,可以包含數字、字母下劃線。

示例代碼,讀取用戶輸入到變數myvar,然後再輸入。

#!/bin/bash

echo "input myvar"

read myvar
echo "myvar is $myvar"

效果如下:

㈡ shell變數定義【學習總結】

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

變數名的定義規則:
變數名嚴格區分大小寫,不能有特殊字元,不能以數字開頭,等號兩邊不能有任何空格,變數名盡量做到見名知意

1、基本方式
直接賦值給一個變數,變數名=變數值

2、命令執行結果賦值給變數

3、互動式定義變數(read)
目的: 讓用戶自己給變數賦值,比較靈活
常見選項釋義:
-p 定義提示用戶的信息
-n 定義字元數(限制變數值的長度)
-s 不顯示(不顯示用戶輸入的內容)
-t 定義超時時間,默認單位為秒(限制用戶輸入變數值的超時時間)

4、定義有類型的變數(declare)
目的: 給變數做一些限制,固定變數的類型,比如:整型、只讀
用法:declare 選項 變數名=變數值
常用選項:
-i 將變數看成整數 declare -i A=123
-r 定義只讀變數 declare -r B=hello

unset 變數名

相同點:引號中的內容可以作為一個整體
不同點:雙引號可以引用變數,單引號不能引用變數

* :匹配0個或者任意多個字元
? :任意單個字元
[a-z] :括弧內的任意單個字元
! :取反
{string,string,string} :匹配括弧裡面用逗號隔開的所有的字元串
{1..100} :匹配一個序列

案例:

1.腳本名稱 ***.sh

2.腳本內容
1)定義解析器
#!/bin/bash
#!/bin/env bash 優勢:會自動去找當前系統的解析器位置
2)注釋說明
#
3)程序本身
定義變數+基本命令+基本語法+思想

1、標准腳本執行方法 :相對路徑或者絕對路徑
前提:標准執行方式腳本必須要有 可執行許可權

2、非標準的執行方法 (不建議)
場景:查看腳本執行過程;或者腳本無法賦予可執行許可權
解析器 +腳本文件

㈢ Shell之環境變數、局部變數

變數可分為兩類:

環境變數又被稱為全局變數,可以在創建的shell以及任意子進程shell中使用。局部變數只能在創建的shell腳本中使用。

環境變數用於定義Shell的運行環境,保證Shell命令的正確執行,Shell通過環境變數來確定登錄的用戶名、登錄目錄等。所有的環境變數都是系統的全局變數,可用於所有的子進程中。

環境變數可以在命令行中設置,但用戶退出後這些變數值也會隨之丟失,所以最好在下面的文件或者目錄中配置,每次用戶登錄都將會被初始化:

環境變數可用在任意的Shell進程中,環境變數名一般大寫,並且是已經使用export內置命令進行了導出。比如HOME、PATH、UID、USER等,在用戶登陸之前已經本/bin/login程序設置好了。

下面是常見的系統環境變數:

更多詳情請通過env命令查看:

如果設置想自己設置環境變數,有臨時生效和永久生效兩種:

在.bash_profile或者/etc/profile文件中使用export導出變數,然後使用"."或者source命令使其生效。

系統的內置的環境變數或者自定義的環境變數可以通過echo或者printf進行列印:

對於有哪些變數使用env(上述已經說過)或者set命令:

使用unset取消變數,不要隨意使用,尤其是系統環境變數:

局部變數的生命周期是當前的Shell腳本,如果啟動另一個Shell進程或者退出當前Shell進程,變數就會丟失。

局部變數又三種定義方式:

變數名一般以字母、數字、下劃線組成,其中以字母開頭。

為了更好的說明上面定義的三種方式,即不加引號、加單引號、加雙引號的區別,以下面的例子說明:

上述a、b、c輸出為:

在上面的基礎上如果變成下面的例子:

a、b、c的輸出有時什麼呢?

從上面的例子中可以看出第一種定義a變數的方式(不帶引號),內容一般為簡單連續的數字、字元串等;第二種定義b變數的方式(單引號)所見即所得,內容原樣輸出;第三種定義c變數的方式(雙引號),輸出變數時引號中變數會經過解析後輸出。

所以,腳本中單純的數字可以不使用引號,但是其它普通字元串盡量使用雙引號。

系列教程:

Python虛擬環境搭建-學習視頻教程-騰訊課堂ke.qq.com

㈣ 下面哪個命令是用來定義shell的全局變數

定義shell的全局變數用export命令。

它可以用於導出全局變數 。在計算機科學中,Shell俗稱殼(用來區別於核),是指「為使用者提供操作界面」的軟體(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。

(4)shell變數命令擴展閱讀:

用途

使用用戶的預設憑證和環境執行 shell。

在UEFI環境下,EFI的Shell環境提供了一組豐富的擴展和增強的命令,在以後的計算機中,傳統的DOS界面將會被SHELL環境所取代,所有的.exe文件將不會在以後支持SHELL的環境中出現,取而代之的文件後綴是.efi。

在SHELL環境下,分為IA32和X64,32位的*.efi文件不能在X64的計算機中運行。

shell 命令

常用命令

cat 文件名 輸出文件內容到基本輸出(屏幕 or 加>fileName 到另一個文件)

cb 格式化源代碼

chmod //change mode,改變文件的許可權

cp

date 當前的時間和日期

echo $abc 在變數賦值之後,只需在變數前面加一個$去引用.

lint語法檢查程序。

㈤ Shell基本腳本命令使用教程

1、本地變數:用戶私有變數,只有本用戶可以訪問,保存在家目錄的 .bash_profile、.bashrc文件中
2、全局變數:所有用戶都可以使用,保存在 /etc/profile 文件中
3、用戶自定義變數:用戶自定義,比如腳本中的變數
定義變數格式: 變數名=值 (=兩邊不能有空格)
字元串用單引號或者雙引號引起來

shell支持正則表達式的常見命令:grep、sed、awk。

sed 是一個行(流)編輯器,非互動式的對文件內容進行增刪改查操作

awk 能夠集過濾、提取、運算為一體,它的工作方式是讀取數據,將每一行數據視為一條記錄,每條記錄以欄位分隔符分成若干欄位,然後輸出各個欄位的值。平行命令還有 gawk、pgawk、dgawk。

㈥ 下面哪個命令是用來定義shell的環境變數

exports。 export命令是用來定義shell的環境變數。至此之後,從當前shell腳本執行的任何應用程序都會繼承這個變數。

㈦ shell中的幾種變數的區別

1、環境變數        2、臨時變數         3、全局變數

env:來查詢環境變數,環境變數能被當前進程和子進程調用,但是不能被新開終端調用              set:是列出所有的臨時變數和環境變數,臨時變數只能被當前進程調用                                        export:是可以將臨時變數變為環境變數                                                                                        unset:取消變數                                                                                              

4、全局變數:

    $HOME/.bashrc:當前用戶的bash信息,包括aliase、umask等                          $HOME/.bash_profile:當前用戶的環境變數,此處的環境變數可以在新開終端調用        $HOME/.bash_logout:每個用戶推出去當前shell時最後讀取的文件

5、位置參數變數

    解釋:主要是向腳本中傳遞數據,變數名不能自定義,變數作用是固定的                                    $n:$0代表命令本身,$1-9代表接受的第1-9個參數,10以上需要用{}括起來,比如${10}代表接收的第10個參數                                                                                                                                       $*:代表接收所有的參數,將所有參數看作一個整體                                                                      $@:代表接收的所有參數,將每個參數區別對待                                                                          $#:代表接收的參數個數                                                                                                                $?:代表上一個命定的返回值,0為標准輸出,1&2表示沒有那個目錄或文件,返回127表示命令沒找到,返回126表示找到了命令但是無法執行,許可權不夠

6、定義有類型的變數

     declare                                                                                                                                              -i將變數看成整數                                                                                                                                 -r只讀變數                                                                                                                                          -x標記變數通過環境導出,也就是說直接將變數定義為了環境變數

7、 互動式定義變數的值read 主要用於讓用戶去定義變數值

        -p 提示信息:提示要輸入的內容,可以任意定義                                                                            -n 字元數:定義要輸入的字元串最長是多少個字元                                                                          -s 不顯示 :主要用於密碼設置,設置時不會顯示,具體用法視情況而定                                         

㈧ 如何在shell腳本中使用變數

在網路中 搜索 linux 系統中使用變數 關鍵詞 ,有問題網路。 下面是我查的示例。


  1. 顯示環境變數HOME


$ echo $HOME

/home/redbooks

2. 設置一個新的環境變數hello

$ export HELLO="Hello!"

$ echo $HELLO

Hello!

3. 使用env命令顯示所有的環境變數

$ env

HOSTNAME=redbooks.safe.org

PVM_RSH=/usr/bin/rsh

Shell=/bin/bash

TERM=xterm

HISTSIZE=1000

...

4. 使用set命令顯示所有本地定義的Shell變數

$ set

BASH=/bin/bash

BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")

BASH_VERSION='2.05b.0(1)-release'

COLORS=/etc/DIR_COLORS.xterm

COLUMNS=80

DIRSTACK=()

DISPLAY=:0.0

...

5. 使用unset命令來清除環境變數

set可以設置某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為NULL。示例如下:

$ export TEST="Test..." #增加一個環境變數TEST

$ env|grep TEST #此命令有輸入,證明環境變數TEST已經存在了

TEST=Test...

$ unset $TEST #刪除環境變數TEST

$ env|grep TEST #此命令沒有輸出,證明環境變數TEST已經存在了

6. 使用readonly命令設置只讀變數

如果使用了readonly命令的話,變數就不可以被修改或清除了。示例如下:

$ export TEST="Test..." #增加一個環境變數TEST

$ readonly TEST #將環境變數TEST設為只讀

$ unset TEST #會發現此變數不能被刪除

-bash: unset: TEST: cannot unset: readonly variable

$ TEST="New" #會發現此也變數不能被修改

-bash: TEST: readonly variable

環境變數的設置位於/etc/profile文件

如果需要增加新的環境變數可以添加下屬行

export path=$path:/path1:/path2:/pahtN

-----------------------------------------------------------------------------------------------------------------------

1.Linux的變數種類

按變數的生存周期來劃分,Linux變數可分為兩類:

1.1 永久的:需要修改配置文件,變數永久生效。

1.2 臨時的:使用export命令聲明即可,變數在關閉shell時失效。

2.設置變數的三種方法

2.1 在/etc/profile文件中添加變數【對所有用戶生效(永久的)】

用VI在文件/etc/profile文件中增加變數,該變數將會對Linux下所有用戶有效,並且是「永久的」。

例如:編輯/etc/profile文件,添加CLASSPATH變數

# vi /etc/profile

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。

2.2 在用戶目錄下的.bash_profile文件中增加變數【對單一用戶生效(永久的)】

用VI在用戶目錄下的.bash_profile文件中增加變數,改變數僅會對當前用戶有效,並且是「永久的」。

例如:編輯guok用戶目錄(/home/guok)下的.bash_profile

$ vi /home/guok/.bash.profile

添加如下內容:

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。

2.3 直接運行export命令定義變數【只對當前shell(BASH)有效(臨時的)】

在shell的命令行下直接使用[export 變數名=變數值] 定義變數,該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變數也就失效了,再打開新shell時就沒有這個變數,需要使用的話還需要重新定義。

3.環境變數的查看

3.1 使用echo命令查看單個環境變數。例如:

echo $PATH

3.2 使用env查看所有環境變數。例如:

env

3.3 使用set查看所有本地定義的環境變數。

unset可以刪除指定的環境變數。

4.常用的環境變數

PATH 決定了shell將到哪些目錄中尋找命令或程序

HOME 當前用戶主目錄

HISTSIZE歷史記錄數

LOGNAME 當前用戶的登錄名

HOSTNAME指主機的名稱

SHELL 當前用戶Shell類型

LANGUGE 語言相關的環境變數,多語言可以修改此環境變數

MAIL當前用戶的郵件存放目錄

PS1基本提示符,對於root用戶是#,對於普通用戶是$

㈨ 在Shell腳本中,讀取鍵盤輸入的內容並將其賦值給Shell變數的命令是什麼

在sell腳本中,讀取鍵盤輸入的內容並將其賦值給shell變數的命令為:

read-p"inputaval:"valecho$val

read - 從標准輸入讀取數值。這個 read 內部命令被用來從標准輸入讀取單行數據。這個命令可以用來讀取鍵盤輸入,當使用 重定向的時候,讀取文件中的一行數據。

它的語法形式一般是:

read[-options][variable...]

這里的 options 是下面列出的可用選項中的一個或多個,且 variable 是用來存儲輸入數值的一個或多個變數名。 如果沒有提供變數名,shell 變數 REPLY 會包含數據行。

基本上,read 會把來自標准輸入的欄位賦值給具體的變數。

㈩ shell變數的使用及輸入輸出

(1),命名只能使用英文字母,數字和下劃線,首個字元不能以數字開頭。
(2),中間不能有空格,可以使用下劃線(_)。
(3),不能使用標點符號。
(4),不能使用bash里的關鍵字(可用help命令查看保留關鍵字)

shell的變數只有字元串類型,所以當不用引號引起來的時候,要暴走變數的值不包含特殊符號,如空格,美元符,&符.

使用一個定義過的變數,只要在變數名前面加美元符號即可,如:

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

運行:

使用 unset 命令可以刪除變數。語法:

示例

運行:

(1)單引號
單引號里的任何字元都會原樣輸出,單引號字元串中的變數是無效的
(2)雙引號
雙引號里可以有變數,也可以出現轉義字元

(1)定義數組
方法一:

方法二:

(2)讀取數組內容

(3)獲取數組長度

結果:

結果:

(1).輸入不在終端顯示
read -p "Input passwd:" -s Passwd
echo $Passwd
(2)限時輸入,否則退出
延遲五秒,沒有輸入將自動退出:
read -p "Input a number:" -t 5 Number
(3) 讀取限定字元
從輸入中取 5 個字元:
read -p "Input a word:" -n 5 Word

<< 可以被認為是一種重定向符.重定向腳本文件中的一行作為一個命令輸入.
操作符<<被放在輸入重低昂小的命令之後,緊跟在<<的各行作為命令的輸入,輸入的結尾通過文件結束符(ctrl+D)表示,也可以自己定義定界符,定界符後的單詞作為輸入各行借宿的定界符.

閱讀全文

與shell變數命令相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163