linux shell程式設計對變數的賦值
linux shell程式設計對變數的賦值
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