1 变量定义
name="hello"
name='hello'
name=hello
2 使用变量
$name
${name}aaa
值得注意的是
如果使用变量后面要加非字母和非下划线和数字的字符的话,就不需要{}
如
$name+
$name()()()
3 只读变量
readonly name
declare -r name
4 unset删除变量
注意,unset无法删除只读变量
5 变量类型
自定义变量(局部)
子进程不能访问
环境变量(全局)
子进程可以访问
自定义转环境变量
name=wrf#默认为自定义变量
export name#方法一
declare -x name#方法二
环境转自定义
export name=wrf#用export就是环境变量
declare +x name#+个x就变回自定义变量
6 字符串
单引号和双引号区别
单引号中的内容会原样输出,不会执行、不会取变量;
双引号中的内容可以执行、可以取变量;
name=yxc # 不用引号
echo 'hello, $name \"hh\"' # 单引号字符串,输出 hello, $name \"hh\"
echo "hello, $name \"hh\"" # 双引号字符串,输出 hello, yxc "hh",和不加双引号是一样的效果
7 获取字符串长度
name="yxc"
echo ${#name} # 输出3
用top看进程
8 提取子串
name="hello, yxc"
echo ${name:0:5} # 提取从0开始的5个字符