shell變量注意事項

概念:變量賦值,變量替換,變量引用,命令替換

variable=22bash

echo variablethis

能夠在同一行設置多個變量.例如code

va1=good   va2=chif va3=beijing  #須要用空格隔開,會下降可讀性和可移植性字符串

variableit

echo $variable #變量替換變量

22file

變量替換例子引用

logfile=err.logdi

echo 「this is a err」 >  $logfile環境變量

 

$variable是${variable}的簡寫形式

variable=value #賦值的時候=先後不能有空格,

variable =value #variable會被當作命令,=22成爲命令參數

variable= value #value被當成命令執行,而且附帶一個被賦值爲空的環境變量variable

 

‘$variable’單引號全引用 - 變量替換會被阻止

「$variable」雙引號半引用 -變量替換會發生

!/bin/bash
hello="A B  C    D"
echo $hello    # 顯示 A B C D 變量替換不會保留空格
echo "$hello"  # 顯示A B  C   D  變量引用會保留空格,變量替換髮生

echo ‘$hello’ #顯示$hello, 半引用,變量替換不會發生

A B C D
A B  C    D

$hello

 

[root@rhel download]# more show_va.sh
!/bin/bash
echo hello
echo $hello
echo "$hello"
echo "${hello}"

hello="A B  C    D"
echo $hello
echo "$hello"
echo '$hello'

va1=22 va2=33 va3=55
echo "va1=$va1 va2=$va2 va3=$va3"

#o_nu=1 2 3
#echo "o_nu is $o_nu"

o_nu=1\ 2\ 3
echo "o_nu is $o_nu"

un_o=  #聲明變量,但沒有初始化,未賦值的變量爲null,不可理解爲0
echo $un_0

 

一個變量的值能夠做爲某個長字符串中的一部分。若是它在長字符串的末尾,就可直接引用,例:

        $s=ing

        $echo read$s and writ$s

        若是在開頭或中間,應該用花括號將該變量括起來:

        $dir=/usr/zhang

        $cat  ${dir}hr/m1.c

2.命令替換

         能夠將一個命令的執行結果賦值給變量,兩種形式:

       (1)倒引號

                 `命令表`

                  例:$dir=`pwd`

        (2)圓括號

                  $(命令表)

                  例:$dir=$(pwd)

for line in `cat file.txt` 等價於$(cat file.txt)

do

echo $line

done

相關文章
相關標籤/搜索