久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【Linux】shell編程之給變量賦值的五種方法

 torony 2015-12-09

1.  Shell中的變量類型

Shell中的變量可以分為環(huán)境變量、位置變量,、預(yù)定義的特殊變量以及用戶自定義變量,、

<!--[if !supportLists]-->2.  <!--[endif]-->環(huán)境變量

Shell中的環(huán)境變量是一類Shell預(yù)定義變量,是用于設(shè)置系統(tǒng)運(yùn)行環(huán)境的變量,,環(huán)境變量由系統(tǒng)統(tǒng)一命名,。部分系統(tǒng)變量的值由系統(tǒng)設(shè)定,,部分環(huán)境變量的值可以由用戶給定。

環(huán)境變量的名稱由大寫字母組成,,常用的Shell環(huán)境變量如下所示:

 

HOME: 用戶主目錄的全路徑名,,cd $HOME 即可切換到用戶的主目錄

PATH: 類似于windows下的路徑,Shell會(huì)在里面依次尋找二進(jìn)制的可執(zhí)行文件,。

       echo $PATH可以顯示當(dāng)前的PATH,,添加新的PATH方法 $PATH=$PATH:新PATH

TERM:  終端類型 echo $TERM

PS1:   提示符,root用戶默認(rèn)為#,,普通用戶默認(rèn)為$

SHELL: Shell解釋器的絕對(duì)路徑

LOGNAME: 登錄用戶的用戶名

UID:  當(dāng)前用戶的UID    echo $UID

<!--[if !supportLists]-->3.  <!--[endif]-->位置變量

位置變量是根據(jù)出現(xiàn)在命令行上的參數(shù)的位置確定的變量,,在調(diào)用Shell程序的命令行中,參數(shù)的位置定義如下所示,。

   $命令  參數(shù)1   參數(shù)2  參數(shù)3

其中  $0  對(duì)應(yīng)  執(zhí)行的命令名

      $1  對(duì)應(yīng)  參數(shù)1

      $2  對(duì)應(yīng)  參數(shù)2

      $3  對(duì)應(yīng)  參數(shù)3

一定要搞清楚順序?。?/strong>)

<!--[if !supportLists]-->4.  <!--[endif]-->預(yù)定義的特殊變量

預(yù)定義的特殊變量有著特殊的含義,,用戶不可以更改,,所有的預(yù)定義變量都由“$”符號(hào)和另外一個(gè)符號(hào)組成,常用的預(yù)定義特殊變量如下所示

$#: 位置參數(shù)個(gè)數(shù)(不包括Shell腳本名)

$*:  位置參數(shù)組成的字符串

$!:   上一個(gè)后臺(tái)命令對(duì)應(yīng)的進(jìn)程號(hào)

$?:   上一個(gè)命令的退出狀態(tài),,為十進(jìn)制數(shù)字,,如果返回為0,則代表執(zhí)行成功,。

$$:   當(dāng)前的進(jìn)程號(hào)PID

<!--[if !supportLists]-->5.  <!--[endif]-->用戶自定義變量 (大小寫敏感

要求: 變量名由字母或者下劃線開頭,,后面跟任意數(shù)量的字母、數(shù)字,、下劃線,。

合法的:

     _name    SIZE    my_idea

非法的:

     2god      !name   hello&world

<!--[if !supportLists]-->6.  <!--[endif]-->變量的創(chuàng)建

有兩個(gè)內(nèi)置的命令declare 和 typeset 可用于創(chuàng)建變量。通過命令的選項(xiàng)設(shè)置還可以設(shè)定變量的創(chuàng)建方,。

除了使用內(nèi)置命令來創(chuàng)建和設(shè)置變量外,,還可以直接賦值,格式為:

變量名=變量值

   注意:變量名前面不應(yīng)加美元“$”符號(hào),。(和PHP不同)

         等號(hào)“=”前后不可以有空格,。

         和C語言不同,Shell中不需要顯式的語法來聲明變量,。

         變量名不可以直接和其他字符相連,,如果想相連,必須用括號(hào):echo “this is $(he)llo!”

<!--[if !supportLists]-->7.  <!--[endif]-->變量的刪除

系統(tǒng)提供unset命令可以刪除變量,,例如

  unset  name

<!--[if !supportLists]-->8.  <!--[endif]-->變量的賦值

變量的賦值有五種:使用read命令,,直接賦值,使用命令行參數(shù),使用命令行的輸出結(jié)果,,從文件讀取,。

先說一下從read命令吧:(主要是在需要交互時(shí)使用

Read命令是系統(tǒng)內(nèi)置命令,語法格式為:

read  變量1   變量2

當(dāng)Shell腳本執(zhí)行到read命令時(shí),,將暫停腳本的執(zhí)行并等待鍵盤的輸入,,當(dāng)用戶輸入完畢并且敲下回車之后,將完成賦值操作,,腳本繼續(xù)執(zhí)行。

Read指令的規(guī)則:

<!--[if !supportLists]-->l  <!--[endif]-->多個(gè)數(shù)據(jù)或變量之間用空格隔開

<!--[if !supportLists]-->l  <!--[endif]-->若變量個(gè)數(shù)與數(shù)據(jù)個(gè)數(shù)相等時(shí),,對(duì)應(yīng)取值

<!--[if !supportLists]-->l  <!--[endif]-->若變量個(gè)數(shù)大于數(shù)據(jù)個(gè)數(shù)時(shí),,沒有輸入數(shù)據(jù)的變量取空值

<!--[if !supportLists]-->l  <!--[endif]-->若變量個(gè)數(shù)小于數(shù)據(jù)個(gè)數(shù)時(shí),將多余的數(shù)據(jù)賦給最后一個(gè)變量(也就是把空格當(dāng)成字符串處理)

例子:

#!/bin/bash

echo –n “ please enter your name”  //-n 表示用戶輸入和提示信息在同一行

read name

echo “your name is $name”

   

#!/bin/bash

echo “Please  enter  your  first name  and last name :”

read first last

echo “your first name is $first”

echo “your last name is $last”

第二種賦值方法就是直接給變量賦值(這種賦值方法主要是在不需要交互時(shí),,并且參數(shù)不需要修改時(shí)使用

例如:name=xiaosu

      gender=man

第三種賦值方法是使用命令行參數(shù)賦值,。(這種賦值方法是參數(shù)需要經(jīng)常變化,并且不需要交互時(shí)使用

這種賦值方法,,也就是直接在命令后面跟參數(shù),,然后系統(tǒng)用$1來引用第一個(gè)參數(shù)。

第四種方法是利用命令的輸出結(jié)果賦值(這種賦值方法可以直接處理上個(gè)命令產(chǎn)生的數(shù)據(jù)

在Shell程序中,,可以將一個(gè)命令的輸出結(jié)果來當(dāng)做變量,,不過需要在賦值語句中使用反引號(hào)

例如currentdir=`pwd`

     echo $currentdir

最后一種賦值方法是從文件中讀入數(shù)據(jù)

這種方式就適合處理大批量的數(shù)據(jù),直接把相應(yīng)的數(shù)據(jù)寫入文件,,然后運(yùn)行腳本即可,。

通常是通過while循環(huán)一行行讀入數(shù)據(jù),即沒循環(huán)一次,,就從文件中讀取一行數(shù)據(jù),,直到讀取到文件的結(jié)尾。

例如:

#!/bin/bash

ls *.sh >execfile

while read LINE

do

chmod a+x $LINE

done<execfile

這個(gè)腳本使用了while..do..done 結(jié)構(gòu),,最后一行表示從文件execfile讀取數(shù)據(jù),。while read LINE表示 每次循環(huán)讀入一行數(shù)據(jù)并賦值給變量LINE。

<!--[if !supportLists]-->9.  <!--[endif]-->變量的輸出

最簡(jiǎn)單的方法就是使用echo

如果想輸出格式化的字符串,,就需要使用printf,,用法和C語言類似

            printf 命令的格式說明符

\”    輸出雙引號(hào)

\\    輸出反斜杠

\a    響鈴

\n    換行

\r     回車


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多