標籤:變數 賦值
變數賦值、替換等
#!/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指令碼來解釋變數