0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Shell腳本中的變量詳解

嵌入式加油站 ? 來源:嵌入式加油站 ? 2023-10-27 11:21 ? 次閱讀

Shell變量概述

跟許多程序設(shè)計(jì)語言一樣,你可以在 bash 中創(chuàng)建變量。

Bash 中沒有數(shù)據(jù)類型,bash 中的變量可以保存一個(gè)數(shù)字、一個(gè)字符、一個(gè)字符串等等。同時(shí)無需提前聲明變量,給變量賦值會直接創(chuàng)建變量。

變量命名原則

命名只能使用英文字母,數(shù)字和下劃線,首個(gè)字符不能以數(shù)字開頭。

中間不能有空格,可以使用下劃線(_)。

不能使用標(biāo)點(diǎn)符號。

不能使用 bash 里的關(guān)鍵字(可用 help 命令查看保留關(guān)鍵字)。

聲明變量

訪問變量的語法形式為:${var} 和 $var 。

變量名外面的花括號是可選的,加不加都行,加花括號是為了幫助解釋器識別變量的邊界,所以推薦加花括號。

word="hello"

echo ${word}

# Output: hello

只讀變量

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

rword="hello"

echo ${rword}

readonly rword

# rword="bye" # 如果放開注釋,執(zhí)行時(shí)會報(bào)錯(cuò)

刪除變量

使用 unset 命令可以刪除變量。變量被刪除后不能再次使用。unset 命令不能刪除只讀變量。

dword="hello" # 聲明變量

echo ${dword} # 輸出變量值

變量類型

局部變量 - 局部變量是僅在某個(gè)腳本內(nèi)部有效的變量。它們不能被其他的程序和腳本訪問。

環(huán)境變量 - 環(huán)境變量是對當(dāng)前 shell 會話內(nèi)所有的程序或腳本都可見的變量。創(chuàng)建它們跟創(chuàng)建局部變量類似,但使用的是 export 關(guān)鍵字,shell 腳本也可以定義環(huán)境變量。

常見的環(huán)境變量:

變量 描述

$HOME 當(dāng)前用戶的用戶目錄

$PATH 用分號分隔的目錄列表,shell 會到這些目錄中查找命令

$PWD 當(dāng)前工作目錄

$RANDOM 0 到 32767 之間的整數(shù)

$UID 數(shù)值類型,當(dāng)前用戶的用戶 ID

$PS1 主要系統(tǒng)輸入提示符

$PS2 次要系統(tǒng)輸入提示符

示例-- Shell腳本

#!/usr/bin/env bash

################### 聲明變量 ###################

name="world"

echo "hello ${name}"

# Output: hello world

################### 輸出變量 ###################

folder=$(pwd)

echo "current path: ${folder}"

################### 只讀變量 ###################

readonly rword

################### 刪除變量 ###################

dword="hello" # 聲明變量

echo ${dword} # 輸出變量值

unset dword # 刪除變量

echo ${dword}

# Output: (空)

################### 系統(tǒng)變量 ###################

echo "UID:$UID"

echo LOGNAME:$LOGNAME

echo User:$USER

echo HOME:$HOME

echo PATH:$PATH

echo HOSTNAME:$HOSTNAME

echo SHELL:$SHELL

echo LANG:$LANG

################### 自定義變量 ###################

days=10

user="admin"

echo "$user logged in $days days age"

days=5

user="root"

# Output:

# admin logged in 10 days age

# root logged in 5 days age

################### 從變量讀取列表 ###################

colors="Red Yellow Blue"

colors=$colors" White Black"

for color in $colors

do

echo " $color"

done

ac986de4-7477-11ee-939d-92fbcf53809c.jpg

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    609

    瀏覽量

    28288
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    361

    瀏覽量

    23234
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    14793

原文標(biāo)題:「Shell腳本」Shell腳本程序開發(fā)——變量(二)

文章出處:【微信號:嵌入式加油站,微信公眾號:嵌入式加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本

    shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本
    的頭像 發(fā)表于 09-19 08:59 ?1795次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進(jìn)階】幾個(gè)常用的<b class='flag-5'>shell</b>進(jìn)階<b class='flag-5'>腳本</b>

    如何在bash shell腳本中使用變量

    如果你使用編程語言編寫過程序,那么一定接觸過變量。而在 bash 腳本的編寫時(shí),變量也是一個(gè)很重要的概念。今天我們分享一下如何在 bash 腳本中使用
    發(fā)表于 12-02 16:32 ?1967次閱讀
    如何在bash <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>中使用<b class='flag-5'>變量</b>

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?606次閱讀

    shell腳本編寫之本地腳本的編寫和執(zhí)行

    ,是在當(dāng)前shell環(huán)境下讀取并執(zhí)行shell腳本,可以不被賦予執(zhí)行權(quán)限。與前幾種執(zhí)行方式不同的是,使用該方式執(zhí)行后,腳本定義的
    發(fā)表于 08-28 09:36

    Linux Shell系列教程之Shell變量

    時(shí)存在三種變量:1) 局部變量局部變量腳本或命令定義,僅在當(dāng)前shell實(shí)例中有效,其他
    發(fā)表于 08-28 14:14

    shell腳本最簡明的教程

    Shell腳本,就是利用Shell的命令解釋的功能,對一個(gè)純文本的文件進(jìn)行解析,然后執(zhí)行這些功能,也可以說Shell腳本就是一系列命令的集合
    的頭像 發(fā)表于 10-16 11:27 ?4695次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>最簡明的教程

    Linuxshell腳本執(zhí)的4種方式

    Linuxshell腳本的執(zhí)行通常有4種方式,分別為工作目錄執(zhí)行,絕對路徑執(zhí)行,sh執(zhí)行,shell環(huán)境執(zhí)行。
    發(fā)表于 05-23 09:28 ?890次閱讀
    Linux<b class='flag-5'>中</b><b class='flag-5'>shell</b><b class='flag-5'>腳本</b>執(zhí)的4種方式

    Linuxshell腳本編程

    編譯型語言:如 c語言解釋型語言:shell 腳本
    的頭像 發(fā)表于 04-18 11:58 ?3045次閱讀

    shell腳本基礎(chǔ)知識

    shell腳本是一個(gè)文件,里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器翻譯或解析指令并執(zhí)行(無需編譯),shell腳本的本質(zhì)是
    的頭像 發(fā)表于 04-17 15:00 ?1016次閱讀

    Bash腳本特殊變量$0是什么?

    在 Bash 腳本,`$0` 是一個(gè)特殊變量,它代表當(dāng)前腳本的路徑和名稱。這個(gè)變量用于表示腳本
    的頭像 發(fā)表于 05-12 14:41 ?1784次閱讀

    shell腳本本身自帶的命令詳解

    除了以文件形式保存在/usr/bin下面的命令,shell腳本還可以使用shell本身自帶的命令,即內(nèi)置命令
    的頭像 發(fā)表于 05-23 09:32 ?938次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>本身自帶的命令<b class='flag-5'>詳解</b>

    Linux Shell腳本經(jīng)典案例分享

    ? 作為一名 Linux 運(yùn)維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時(shí)間做自己的事。最近在網(wǎng)上沖浪的時(shí)候,發(fā)現(xiàn)大家對Shell腳本都有“心結(jié)”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249個(gè)真實(shí)
    發(fā)表于 06-16 14:03 ?610次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享

    分享249個(gè)拿來即用的shell腳本

    ? 由于腳本案例太多,在此僅展示部分,完整版領(lǐng)取方式請見文末 ? ? ? 249個(gè)拿來即用的shell腳本! ? 這249個(gè)Shell腳本
    的頭像 發(fā)表于 07-07 10:52 ?1086次閱讀
    分享249個(gè)拿來即用的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>

    shell腳本基本命令

    "Hello, World!" 將輸出"Hello, World!"。 read命令:用于從標(biāo)準(zhǔn)輸入讀取一行,并將每個(gè)字段的值分配給shell變量。例如, read name 將讀取一行輸入,并將
    的頭像 發(fā)表于 11-08 10:08 ?1895次閱讀

    shell并行調(diào)用腳本

    Shell腳本,可以使用一些技巧來實(shí)現(xiàn)并行調(diào)用。以下是幾種常見的方法: 使用后臺進(jìn)程:在Shell腳本
    的頭像 發(fā)表于 11-08 10:23 ?862次閱讀