日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell 编程 变量

發布時間:2024/8/26 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 编程 变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/qq504196282/article/details/52994249

?

shell之變量和引用

分類:SHELL編程基礎

?(470)??(0)??舉報??收藏

一 變量

?變量:本質上是程序中保存用戶數據的一塊內存空間,變量名就是內存空間地址。

Shell中:變量可有字母數字和下劃線組成,只能以字母或下劃線開頭。

命名:PATH=/sbin

?????JAVA_HOME=”/usr/lib”

(變量名區分大小寫)

在shell中,變量的數據類型無需顯示低聲明,變量的數據類型會根據不同操作有所變化。

shell變量部分數據類型,統一按字符串存儲,但根據變量的上下文環境,允許程序執行一些不同操作)。為了能執行加減法計算,shell為自動進行數據類型的轉換,如果遇到含義非數字的字符串,則該字符串被轉換成整數0。同時,在空串以及沒有定義變量的情況下,變量值都會被轉換為整數0。

例如,n=“” echo “n=$n”

?????Echo “p=$p”

1.1變量的定義:

Shell中可以直接使用變量,無需定義,如果變量的值包含空格,一定要用引號引起來。

declare attribute variable(控制變量相關屬性)

attribute 表示變量屬性,variable表示名稱,屬性有:

-p:顯示所有變量值

-i:定義為整數

-r:定義為只讀變量

-a:定義為數組變量

-f:顯示所有自定義函數,包括名稱和函數體

-x:變量設置成環境變量,隨后的腳本和程序可以使用

例子:

x=6/3

echo "$x"??????????????????????????? //6/3

#定義變量x為整數

declare -i x

echo "$x"????????????????????????? //6/3,因為shell中所有數據都當做字符串存儲

#將算術式賦給變量x

x=6/3

echo "$x"???????????????????????? //2,變量聲明為整數后,可以進行算術運算

#將字符串賦給變量x

x=hello

echo "$x"

#將浮點數賦給變量x

x=3.14

echo "$x"????????????????????????? //報錯,bash不支持浮點數

#取消變量x的整數屬性

declare +i x

#重新將算術式賦給變量x

x=6/3

echo "$x"

#求表達式的值

x=$[6/3]

echo "$x"????????????????????????????? //2,得到算術值得兩種方法,方括號

#求表達式的值

x=$((6/3))???????????????????????????? //2,得到算術值得兩種方法,圓括號

?1.2 引號

單引號(‘’):括起來的字符作為普通字符

雙引號(“”):括起來的字符,除??? “$”, “\”,? “`”和“``”保留其特殊功能外,其余仍作為普通字符

反引號(``):括起來的字串被解釋為命令,shell首先執行該命令,并一他的標準輸出結果例如:取代整個反引號部分

#! /bin/bash

#輸出當前目錄

echo "current directory is `pwd`"

結果:currentdirectory is /root/chapter3

(先執行`pwd`,結果/root/chapter3取代`pwd`)

?1.3?變量的作用域:

全局變量:shell中,全局變量可在腳本中定義,也可在某個函數中定義。腳本中定義的變量都為全局變量,作用域為被定義的地方開始,指定shell腳本結束或顯示刪除。

例:

#! /bin/bash

#定義函數

func()

{

?? #輸出變量x的值

??echo "$v1" //100

?? #修改變量x的值

??v1=200

}

#在腳本中定義變量x

v1=100

#調用函數

func

#輸出變量x的值

echo "$v1"? //200

局部變量:通常僅限某個程序段訪問,如函數內部。Shell中可在函數內部通過local關鍵字定義局部變量,另外函數的參數也是局部變量。

例:

#! /bin/bash

#定義函數

func()

{

?? #使用local關鍵字定義局部變量

??local v2=200

}

#調用函數

func

#輸出變量的值

echo "$v2"??? // 空值,函數外面不能獲得該變量的值

注意:全局變量與局部變量同名時,函數內部的局部變量優先被使用。無論在何處,賦值語句都會影響全局變量的值,全局變量的值改變后,最整個腳本都有效,默認情況下,函數內部定義的變量也是全局變量,除非用local聲明

?

1.4 系統變量:

Shell的系統變量主要對參數判斷和命令返回值判斷時的使用,包括腳本和函數的參數,以及腳本和函數的返回值。常用系統變量:

$n:表示傳遞給腳本的第n個參數,如$1表示第一個參數

$#:命令行參數的個數

$0:當前腳本名稱

$*:以“參數1參數2….”形式返回所有參數的值

$@:以“參數1”“參數2”形式返回所有參數的值

$_:保存之前執行的命令的最后一個參數

例子:

#! /bin/bash

#輸出腳本的參數個數

echo "thenumber of parameters is $#"

#輸出上一個命令的退出狀態碼

echo "thereturn code of last command is $?"

#輸出當前腳本名稱

echo "thescript name is $0"

#輸出所有的參數

echo "theparameters are $*"

#輸出其中的幾個參數

echo"\$1=$1;\$2=$2;\$11=$11"

1.5 環境變量:

Shell環境變量是所有shell程序都可以使用的變量。(全部大寫)

PATH:命令搜索路徑,以冒號為分隔符,當前目錄不在系統路徑里

HOME:用戶主目錄的路徑名,cd命令的默認參數

COLUMNS:命令編輯模式下可使用命令行長度

HISTSIZE:命令歷史文件中最多可包含的命令條數

HISTFILE:命令歷史文件

HISTFILESIZE:命令歷史文件中包含的最大行數

IFS:shell使用的分隔符

LOGNAME:當前的登入名

SHELL:Shell的全路徑名

TERM:終端類型

TMOUT:shell自動退出時間,單位秒,為0則禁止shell自動退出

PWD:當前工作目錄

可以使用set命令列出所有環節變量,set| more

例子:

#! /bin/bash

#輸出命令搜索路徑

echo"commands path is $PATH"

#輸出當前的登錄名

echo "currentlogin name is $LOGNAME"

#輸出當前用戶的主目錄

echo "currentuser's home is $HOME"

#輸出當前的Shell

echo "currentshell is $SHELL"

#輸出當前工作目錄

echo "currentpath is $PWD"

?1.6 變量賦值和清空:

Shell中所有普通變量值都看作字符串,如果賦值包含空格,制表符和換行符,要用單引號或雙引號括起來,一個沒有初始化的shell變量被認為是一個空字符串。

?1.7 清除變量:

?

變量被清除后,代表的值也會消失。消除變量用unset語句

?

unsetvariable_name

二 引用

2.1引用變量的值:

可通過在變量面前加$來獲取變量的值。

為了能使shell正確的界定變量名,可以在引用變量時使用大括號將變量括起來

如:

v4=123

echo “${v4}abc”

結果:123abc

(若直接echo “$v4abc”,會變成空字符串,因為v4abc沒有被定義)

2.2引用和替換:

引用:字符串用引用符合包括起來,防止特殊字符被shell解釋成其他含義

常用引用符號:

雙引號:除$,’’,``,\之外,其他所有字符保持字面意義

單引號:所有字符保持字面意義

反引號:反引號中的字符串被解釋為shell命令

反斜線:轉義字符,屏蔽后的字符的特殊意義

2.3全引用:

單引號引用的方式。

#! /bin/bash

#定義變量v1

v1="chunxiao"

#輸出含有變量名的字符串

echo 'Hello, $v1'? //全引用保持字面意義

結果:Hello ,$v1

?2.4 部分引用:

雙引號引用方式

?2.5 命令替換:

將某個shell命令的執行結果賦給某個變量。

兩種方式:

反引號:`shell_command`

圓括號:$(shell_command)

2.6轉義:

轉換某些特殊字符的意義,\表示。屏蔽反斜線后面字符的特殊意義

如:

Echo $SHELL

結果:/bin/bash

Echo \$SHELL

結果:$SHELL

轉載于:https://www.cnblogs.com/acSzz/p/6831107.html

總結

以上是生活随笔為你收集整理的shell 编程 变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。