linux shell编程对变量的赋值

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