高级Bash编程指南__第二部分__基本__4.0变量和参数的介绍

4.0 变量和参数的介绍
1.0 变量的声明不能出现空格;
2.0 被一对双引号(" ")括起来的变量替换是不会被阻止的,所以双引号被称为部分引用,又叫弱引用;如果被一对单引号(' '),那么变量替换就被阻止了,变量名只会被解释成字面的意思,不会发生变量替换,所以单引号又称为全引用,或者强引用;

[root@cy-cloud02 exercise]# hello="A B C  D"
[root@cy-cloud02 exercise]# echo $hello   #变量替换则不会保留其中的空白
A B C D
[root@cy-cloud02 exercise]# echo "$hello"  #变量引用将保留其中的空白
A B C  D
[root@cy-cloud02 exercise]# echo "${hello}"
A B C  D
[root@cy-cloud02 exercise]# echo '$hello'  #强引用,只能显示字面意思
$hello


3.0 可以在同一行上设置多个变量,但是必须以空白进行分割(这种方式会降低可读性,并且不可移植)
[root@cy-cloud02 exercise]# var1=1 var2=2 var3=3
[root@cy-cloud02 exercise]# echo "var1=$var1 var=$var2 var3=$var3"
var1=1 var=2 var3=3

如果在变量中存在空白,则必须加上引用,或者采用将空白转义的方法。
[root@cy-cloud02 exercise]# mixed_bag=2\ ---\ Whatever
[root@cy-cloud02 exercise]# echo $mixed_bag
2 --- Whatever

[root@cy-cloud02 exercise]# echo $mixed_bag
2 --- Whatever
[root@cy-cloud02 exercise]# unset mixed_bag    #设置这个变量的值为空
[root@cy-cloud02 exercise]# echo $mixed_bag

[root@cy-cloud02 exercise]#

注意:
* 一个未初始化的变量是没有值的,但在做算术操作的时候,这个未初始化的变量看起来是0;

[root@cy-cloud02 exercise]# echo "$uninitialized"     #未定义的变量初始值为空

[root@cy-cloud02 exercise]# let "uninitialized += 5"  #对未定义的变量进行算术运算
[root@cy-cloud02 exercise]# echo "$uninitialized"
5
[root@cy-cloud02 exercise]#

4.0 赋值 "="
1.0 使用read进行赋值
#!/bin/bash
echo -n "Enter \"a\" "
read a
echo "The value of \"a\" is now $a "
echo

exit 0

2.0 复杂一点的赋值
[root@cy-cloud02 exercise]# a=`echo hello`
[root@cy-cloud02 exercise]# echo $a
hello
[root@cy-cloud02 exercise]# a=`ls -l`
[root@cy-cloud02 exercise]# echo "${a}"
total 8
-rwxr-xr-x 1 root root 43 Oct 16 23:26 201.sh
-rwxr-xr-x 1 root root 93 Oct 18 10:58 401.sh

3.0 使用$(...)机制进行变量赋值
[root@cy-cloud02 exercise]# arch=$(uname -m)
[root@cy-cloud02 exercise]# echo $arch
x86_64
[root@cy-cloud02 exercise]#

5.0 Bash变量是不区分类型的
6.0 从命令行传递到脚本的参数: $0, $1 ... $9, ${10}, ${11}
$9之后的参数必须用大括号括起来
$* 和 $@表示所有的位置参数








@dianxinguangchang.43F.zhongshanerlu.yuexiuqu.guangzhoushi.guangdongsheng

2016-10-18 15:16

猜你喜欢

转载自listen-raining.iteye.com/blog/2331349
今日推荐