-----------------------------------------------------------------Sun-------------------------------------------------------------------
一、变量替换
变量的名字就是变量保存值的地方。引用变量的值就叫做变量替换。
var 是变量名,那么 $var 就是引用这个变量的值。${var} 作用等同于 $var
echo hello # 没有变量引用, 只是个hello字符串.
echo $hello
echo ${hello}
echo "$hello"
echo "${hello}"
#!/bin/bash
hello="A B C D"
echo $hello
echo "$hello"
在bash中,当变量中有空格、tab之类的字符时候, 如果需要打印这些字符,需要用双引号进行引用 "$hello".
二、变量赋值
复制操作前后都不能有空白
运行后
带引号的保留了空格 Tab。
三、变量不区分类型
Bash变量都是字符串。
a=2334
let "a += 1"
echo "a = $a"
b=${a/23/BB}
echo "b = $b"
d=${b/BB/23}
echo "d = $d"
四、特殊变量
1.局部变量
只有在代码块或者函数中才可见
2.环境变量——影响用户接口和shell行为
每个进程都有自己的环境,这个环境由一组变量组成的,每个变量中都有进程可能需要的信息。
3.位置参数
从命令行传递到脚本的参数:$0,$1,$2,$3...
$0就是脚本文件自身的名字,$1 是第一个参数,$2 是第二个参数,$3 是第三个参数,然后是第四个。$9 之后的位置参数就必须用大括号括起来了,比如 ${10},${11},${12}。 $* 和 $@ 表示所有的位置参数。
echo "The name of this script is\"$0\""
echo "The name of this script is \"`basename $0`\""
运行结果: 可见 $0 就是文件本身名字
The name of this script is "test10.sh"
The name of this script is "test10.sh"