2016-11-11 00:00:00嘉辉 Linux认证
shell对变量的赋值,所有的变量都是由字符串组成,不需要对变量名预先声明,而且有很多关键字供编程者使用。下面列举例子详细说明。 在终端下建立文件 #vi s2.sh
#!/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
[Linux认证]热门推荐
921
人