成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

bash 腳本中關于變量的一些用法總結

系統 Linux
除了這種用法之外,針對變量還可以有其他的一些操作,比如在未設置變量時設置一個默認值,以及為單個變量分配多個值等。

我們先前寫過關于 ??bash 腳本中變量的用法???。其一般使用方式為,使用一個變量存儲一些數據,然后調用變量,如下所示:?

name="tiap"
echo "hello, $name!"

除了上面這種用法之外,針對變量還可以有其他的一些操作,比如在未設置變量時設置一個默認值,以及為單個變量分配多個值等。

下面我們來詳細看一下。

使用數組

數組在 bash 腳本中是經常會用到的一種數據類型。其定義方法為:

name=("tiap" "linux")

上述腳本,是在數組 name 中定義了兩個變量,分別是 tiap linux

那么,如何訪問這些值呢?

如果你運行 echo $name,會看到它只打印第一個值,tiap。訪問其他的值需要使用另外的方式,即使用 ${variable[number]} 語法從數組變量中提取特定的值。如下所示:

echo "hello ${name[1]}!"

上面腳本將打印 "hello, linux!"

與其他大多數編程語言類似,數組索引的順序,是從 0 開始的。所以,訪問第一個元素的方式為:

echo "hello ${name[0]}!"

它與 echo "hello, $name!" 的結果是完全相同的,由此可見,訪問數組的時候,其索引值 [number] 是可以省略的,當省略索引值的時候,取默認值 0。

索引僅表示項在數組中的位置,所以索引0是數組中的第一個元素。

未設置變量時使用默認值

當變量未按以下方式設置時,可以將變量默認設置為某個字符串:

${variable:-string}

看下面的例子:

echo "hello ${name:-nobody}!"

由于變量 name 沒有設置任何值,所以它會使用 nobody 作為默認值,所以上述腳本將會打印 "hello, nobody!"。

如果預先設置了變量值,當然會使用為其設置的值:?

name="tiap"
echo "hello ${name:-nobody}!"

其結果為 "hello, tiap!"

在已設置變量值時修改值

我們還可以設置變量以在設置變量時返回某個值。這將導致變量在設置時打印某個字符串,而在未設置時不打印任何字符串。其語法結構如下:

${variable:+string}

看下面的例子:

echo "hello ${name:+person}!"

由于變量 name 沒有設置,所以它只會打印 "hello !"。

修改上面的腳本,為變量 name 設置一個值,它將不會使用為其設置的值,而是使用調用的時候提供的值:?

name="tiap"
echo "hello ${name:+person}!"

上述腳本的結果為 "hello person!"。

變量的間接引用

看下面的語法結構:

${!variable}

這個在功能上優點復雜,但是當你了解它的工作原理后,就很容易理解了,看下面的例子:?

name="tiap"
variable="name"
echo "hello ${!variable}!"

上述腳本將會打印 "hello tiap!"。

變量名前面的感嘆號 ! 會替換變量名,然后在查找該變量名的相關變量值。

計算變量的長度

現在我們再來看如下語法結構:

${#variable}

它將會打印變量的長度,但是會根據變量是字符串還是數組而略有不同。

如果變量為字符串,那么將會返回字符串中字符的個數,如下所示:?

variable="name"
echo "${#variable}."

上述腳本的結果為 4

如果變量為數組,那么將會打印數組中元素的個數,看下面的例子,其結果將會打印 2:?

variable=("name" "word")
echo "${#variable}."

小寫和大寫字符串

要改變變量值的大小寫,可以分別使用運算符 ^ ,如下所示:?

# 轉為大寫
${variable^}
${variable^^}
# 轉為小寫
${variable,}
${variable,,}

上述腳本中,一個運算符 ^ 和兩個^^ 有什么區別呢?一個運算符(比如 ${variable^} )只會修改變量值中的第一個字母,而兩個運算符的時候(比如 ${variable^^})會修改整個字符串。比如:?

variable="name"
echo "${variable^}"

結果將為:Name

而:

variable="name"
echo "${variable^^}"

其結果將會為:NAME

同樣,小寫轉換符也是一樣。下面腳本將會打印:wIDEname

variable="WIDEname"
echo "${variable,}"

而下面腳本將會打印:widename

variable="WIDEname"
echo "${variable,,}"
責任編輯:龐桂玉 來源: TIAP
相關推薦

2020-04-10 08:50:37

Shell腳本循環

2020-05-19 14:35:42

Shell腳本循環

2017-09-05 09:17:47

Java編程用法總結

2020-04-08 10:21:58

bash腳本語言

2020-04-14 09:22:47

bash腳本技巧

2020-09-28 06:45:42

故障復盤修復

2012-01-18 10:13:50

Objective-CiOSself

2009-09-21 17:46:25

Hibernate數據

2011-07-13 09:13:56

Android設計

2009-07-02 10:52:30

JavaBean規范

2019-10-15 06:00:26

Google AnalAngularReact

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2022-11-09 19:02:10

Linux

2017-09-10 17:31:18

iOS渲染數據

2017-02-20 16:28:30

DCISDN-WAN傳輸網絡

2009-06-22 15:36:00

如何學好java

2011-07-12 09:47:53

WebService

2011-11-28 15:57:26

MySQL數據庫主從配置

2009-09-27 11:09:42

API設計
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区在线 | 亚洲性视频 | 人人看人人爽 | av网站在线播放 | 视频在线一区二区 | 国产精品久久久久一区二区三区 | 国产精品免费一区二区三区 | 黄色免费在线网址 | 国产一区二区三区www | 国产精品视频网 | 一区二区三区精品在线 | 亚洲va欧美va天堂v国产综合 | 亚洲电影一区二区三区 | 午夜码电影 | 水蜜桃久久夜色精品一区 | 久久影音先锋 | 91国内精品久久 | 国精产品一品二品国精在线观看 | 欧美日韩精品一区二区天天拍 | 国产人免费人成免费视频 | 日韩欧美精品一区 | 亚洲国产精品久久久久婷婷老年 | 北条麻妃一区二区三区在线视频 | 免费观看一级特黄欧美大片 | 国产精品视频一二三区 | 国产成视频在线观看 | xx视频在线 | 国产精品1 | 91精品在线观看入口 | 三级视频国产 | 中文字幕av网 | 国产免费观看视频 | 成人日韩 | 国产午夜精品久久久 | 天天射夜夜操 | 国产高潮好爽受不了了夜色 | 亚洲国产aⅴ精品一区二区 免费观看av | 波多野结衣在线观看一区二区三区 | 精品一区二区视频 | 中国大陆高清aⅴ毛片 | 亚洲欧美激情国产综合久久久 |