4.0 变量和参数的介绍
1.0 变量的声明不能出现空格;
2.0 被一对双引号(" ")括起来的变量替换是不会被阻止的,所以双引号被称为部分引用,又叫弱引用;如果被一对单引号(' '),那么变量替换就被阻止了,变量名只会被解释成字面的意思,不会发生变量替换,所以单引号又称为全引用,或者强引用;
# hello="A B C D"
# echo $hello #变量替换则不会保留其中的空白
A B C D
# echo "$hello" #变量引用将保留其中的空白
A B C D
# echo "${hello}"
A B C D
# echo '$hello' #强引用,只能显示字面意思
$hello
3.0 可以在同一行上设置多个变量,但是必须以空白进行分割(这种方式会降低可读性,并且不可移植)
# var1=1 var2=2 var3=3
# echo "var1=$var1 var=$var2 var3=$var3"
var1=1 var=2 var3=3
如果在变量中存在空白,则必须加上引用,或者采用将空白转义的方法。
# mixed_bag=2\ ---\ Whatever
# echo $mixed_bag
2 --- Whatever
# echo $mixed_bag
2 --- Whatever
# unset mixed_bag #设置这个变量的值为空
# echo $mixed_bag
#
注意:
* 一个未初始化的变量是没有值的,但在做算术操作的时候,这个未初始化的变量看起来是0;
# echo "$uninitialized" #未定义的变量初始值为空
# let "uninitialized += 5" #对未定义的变量进行算术运算
# echo "$uninitialized"
5
#
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 复杂一点的赋值
# a=`echo hello`
# echo $a
hello
# a=`ls -l`
# 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 使用$(...)机制进行变量赋值
# arch=$(uname -m)
# echo $arch
x86_64
#
5.0 Bash变量是不区分类型的
6.0 从命令行传递到脚本的参数: $0, $1 ... $9, ${10}, ${11}
$9之后的参数必须用大括号括起来
$* 和 $@表示所有的位置参数
@dianxinguangchang.43F.zhongshanerlu.yuexiuqu.guangzhoushi.guangdongsheng
2016-10-18 15:16
1.0 变量的声明不能出现空格;
2.0 被一对双引号(" ")括起来的变量替换是不会被阻止的,所以双引号被称为部分引用,又叫弱引用;如果被一对单引号(' '),那么变量替换就被阻止了,变量名只会被解释成字面的意思,不会发生变量替换,所以单引号又称为全引用,或者强引用;
# hello="A B C D"
# echo $hello #变量替换则不会保留其中的空白
A B C D
# echo "$hello" #变量引用将保留其中的空白
A B C D
# echo "${hello}"
A B C D
# echo '$hello' #强引用,只能显示字面意思
$hello
3.0 可以在同一行上设置多个变量,但是必须以空白进行分割(这种方式会降低可读性,并且不可移植)
# var1=1 var2=2 var3=3
# echo "var1=$var1 var=$var2 var3=$var3"
var1=1 var=2 var3=3
如果在变量中存在空白,则必须加上引用,或者采用将空白转义的方法。
# mixed_bag=2\ ---\ Whatever
# echo $mixed_bag
2 --- Whatever
# echo $mixed_bag
2 --- Whatever
# unset mixed_bag #设置这个变量的值为空
# echo $mixed_bag
#
注意:
* 一个未初始化的变量是没有值的,但在做算术操作的时候,这个未初始化的变量看起来是0;
# echo "$uninitialized" #未定义的变量初始值为空
# let "uninitialized += 5" #对未定义的变量进行算术运算
# echo "$uninitialized"
5
#
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 复杂一点的赋值
# a=`echo hello`
# echo $a
hello
# a=`ls -l`
# 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 使用$(...)机制进行变量赋值
# arch=$(uname -m)
# echo $arch
x86_64
#
5.0 Bash变量是不区分类型的
6.0 从命令行传递到脚本的参数: $0, $1 ... $9, ${10}, ${11}
$9之后的参数必须用大括号括起来
$* 和 $@表示所有的位置参数
@dianxinguangchang.43F.zhongshanerlu.yuexiuqu.guangzhoushi.guangdongsheng
2016-10-18 15:16