通過shell指令碼來解釋變數

來源:互聯網
上載者:User

標籤:變數   賦值   

  1. 變數賦值、替換等

#!/bin/bash
#1.單變數賦值
variable1=33           #將變數variable1賦值為33
echo ${variable1}      ##第一種顯示方法為${variable1}
echo $variable1        ##第二種顯示方法為$variable1

variable2="hello world"  #將變數variable2賦值為"hello world",需要用雙引號,避免出現字元分隔
echo $variable2      
#****************************************************************************

#2.變數套變數賦值
variable4="We are saying $variable2"  #變數賦值中使用另一個變數$variable2
echo $variable4

#*****************************************************************************

#3.清除變數,但不對變數初始化
unset variable4          #清除variable4變數
echo $variable           ##空白行表示variable4變數未被初始化

#*****************************************************************************

#4.符號:+和符號:- 相同點與區別
#相同點:不能對已經賦值過的變數重新賦值
colour=black                                  #對變數colour賦值
echo "The Background is ${colour:=blue}"      ##:=符號的用法:表示對未賦值的variable,將value賦值給它
echo "The Background is ${colour:-blue}"      ##:-符號的用法:表示對未賦值的variable,將value賦值給它,但value值不儲存到variable對應的地址空間
#區別:
unset colour                                 #將變數colour的賦值清除
echo "The Background is ${colour:-blue}"      ##用:-符號對colour賦值
echo $colour                                 ##colour沒有真正賦值
echo "The Background is ${colour:=blue}"     ##用:=符號對colour賦值
echo $colour                                 ##colour賦值了

#*******************************************************************************

#5.符號+  對已賦值的variable,重設其值
echo ${colour+red}    ##對已經賦值的colour,重新賦值為red,臨時賦值
echo $colour          ##顯示原來的賦值

#******************************************************************************

#6.?或:?   對未賦值的variable,顯示系統錯誤資訊
 ##變數color是否賦值,如果已經賦值,就顯示賦值,沒有賦值就顯示-bash: b:parameter null or not set
echo ${colour?}   ##變數colour已經賦值了,下面會顯示賦值
unset colour      ##清除colour賦值賦值
echo ${colour?}   ##colour沒有賦值,下面會顯示-bash: b:parameter null or not set


#/bin/bash
colour=blue        ##將變數colour賦值
echo colour
read only colour   ##將變數colour賦值為唯讀
colour=black       ##將變數colour重新賦值,發現無法賦值
readonly           ##查看系統中所有的唯讀變數

=========================================================

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


變數的參數使用

#!/bin/bash
echo "The script name is: $0"      # $0表示指令碼本身
echo "Parameter #1: $1"            # $1表示第1個參數,後面依次類推
echo "Parameter #2: $2"
echo "Parameter #3: $3"
echo "Parameter #4: $4"
echo "Parameter #5:$5"
echo "Parameter #6: $6"
echo "Parameter #7: $7"
echo "Parameter #8:$8"
echo "Parameter #9: $9"
echo "Parameter #10: ${10}"    # ${10}用花括弧

echo "-------------------------"
echo "The number of command line parameters is: $#"   # $#表示傳遞到指令碼的參數數量
echo "All the command line parameters are: [email protected]"        # [email protected]或$*表示傳遞到指令碼的所有參數
echo "The process ID is: $$"                          # $$表示指令碼啟動並執行進程號
echo "Did this script have any errors $?"             # $?表示命令的退出狀態,0表示沒有錯誤 ,非0 表示有錯誤

#position指令碼說明$0,$1,$2,...,${10},$*,$#,$$,$?
#這裡用cat tr cut head tail sed awk less more paste來表示$1到${10}這10個參數


========================================================

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

父進程和子進程的關係


#father.sh:該指令碼輸出自身進程及調用子進程

#!/bin/bash
#輸出父進程號
echo "Father Process ID is $$"

#定義本地變數並輸出
localvar="Define a local variable."
echo "localvar=$localvar"

#定義環境變數並輸出
ENVVAR="Define a environment variable."
export ENVVAR
echo "ENVVAR=$ENVVAR"

#調用child.sh指令碼,即建立子進程
$PWD/child.sh

#child.sh執行完畢,輸出相關變數值
echo "Return to father process: $$"
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"



#child.sh:該指令碼輸出自身進程號及父進程號、重新定義本地變數和環境變數
#!/bin/bash

#輸出自身進程號及父進程號
echo "Chile Process ID is $$"
echo "My Father Process ID is $PPID"

#輸出本地變數和環境變數的當前值
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"


#重新定義本地變數和環境變數
localvar="Redefine this ocal variable."
ENVVAR="Redefine this environment variable."
echo "localvar=$localvar"
echo "ENVVAR=$ENVVAR"



本文出自 “盡夜” 部落格,請務必保留此出處http://endmoon.blog.51cto.com/8921900/1616629

通過shell指令碼來解釋變數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.