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)
for
line
in
`
cat
file
.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 變數名 為什麼這樣做呢?因為現在的 的量越來越大,如果沒有很好的命名規則,導致 的可讀性太差 所以當我按照上述的規則,我就能馬上分清是函式變數 不需要特殊字首 區域性變數,成員變數和全域性變數 大家都知道變數要在...