shell變數注意事項

2021-09-06 16:40:45 字數 1870 閱讀 8769

variable=22

echo variable

可以在同一行設定多個變數.例如

va1=good   va2=chif va3=beijing  #需要用空格隔開,會降低可讀性和可移植性

variable

echo $variable #變數替換

22

變數替換例子

logfile=err.log

echo 「this is a err」 >  $logfile

$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="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  $hr/m1.c

2.命令替換

可以將乙個命令的執行結果賦值給變數,兩種形式:

(1)倒引號

`命令表`

例:$dir=`pwd`

(2)圓括號

$(命令表)

例:$dir=$(pwd)

forlinein`catfile.txt` 等價於$(cat file.txt)

do

echo$line

done

shell使用注意事項

for迴圈用變數中的空格做遍歷的隔離 1 2 3 這樣會迴圈3遍。號左右不能有空格,空格會導致不識別command lc all c export lc all 它是乙個巨集,如果該值設定了,則該值會覆蓋所有lc 的設定值。注意,lang的值不受該巨集影響。c 是系統預設的locale,posix ...

Shell程式設計注意事項

1.變數賦值時 兩邊不能有空格 在使用高階語言程式設計是,為了顯示清楚,本人常常在等號兩邊加上空格,在shell程式設計時,加上空格會報錯,但未必不能執行 2.使用字串時可以不加雙引號,直接使用,但是中間不能有 或者轉義字元 例如 echo hello world hello everyone 可以...

變數的注意事項

以下是自己的經驗 全域性變數命名 g 變數名 區域性變數命名 l 變數名 成員變數 m 變數名 為什麼這樣做呢?因為現在的 的量越來越大,如果沒有很好的命名規則,導致 的可讀性太差 所以當我按照上述的規則,我就能馬上分清是函式變數 不需要特殊字首 區域性變數,成員變數和全域性變數 大家都知道變數要在...