shell對變量的賦值,所有的.變量都是由字符串組成,不需要對變量名預先聲明,而且有很多關鍵字供編程者使用。下面列舉例子詳細說明。 在終端下建立文件 #vi
#!/bin/sh
#set a variable a
a="hello world"
#print a
echo "A is :"
echo $a
在這個程序當中,可以看到shell編程與C編程的區別,沒有那麼嚴格的語法,在每句不需要加“;”,
而且在shell中引用變量的時候前面加“$”。
1 當變量名與其他文字混淆的時候,需要加“{}”
#!/bin/sh
# set a variable num
num=2
echo "the variable num is $numnd"
運行程序後,答案並不是 the variable num is 2nd,而是什麼都沒有輸出。因爲bash會尋找numnd變量,但是並沒有給這個變量賦值。所以將程序改爲:
echo "the variable num is {$num}nd"
2 默認變量
$#:傳入腳本的命令行參數個數
$*:所有命令行的參數值,而且各個參數值之間有空格表示
$0:命令本身,就是要執行的shell文件名
$1:第一個命令行參數
$2:第二個命令行參數
$3
$4
example:
#!/bin/sh
echo "number of vars:"$#
echo "number of vars:"$0
echo "number of vars:"$*
echo "number of vars:"$1
echo "number of vars:"$2
echo "number of vars:"$3
運行./file 11 22 33
輸出結果:
3
file
11 22 33
11
22
33
3局部變量
在變量首次賦值是加關鍵字local可以聲明爲局部變量。
#!/bin/sh
hello="aa"
echo $hello
function fucn1{
local hello="bb"
echo $hello
}
func1
echo $hello