bash变量类别:
本地变量: (更小的有局部变量,之限于某一个代码段)
作用范围仅限当前源程序文件.仅对当前的shell进程有效(即理解为打开的一个shell终端,同时记住父shell的变量在子shell里同样没有效果).
echo命令:
-n:输出的时候省去 (回车).
-e:显示转义字符.如 e. echo -e "hello world"中 会被输出为table,而如果不加的话则输出 hello world.
bash中引号的作用:引用
‘’(单引号):强引用 引号里的所有东西都当做字符串原封不动使用.
""(双引号):弱引用 变量替换.
echo "$AGE"表示输出AGE变量的值,但是echo '$AGE'则原封不动输出$AGE
``(反引号):实现命令替换
变量的声明和赋值:
声明:
declare AGE:(默认声明为字符串)
-i:声明为整型
-a:声明为数组.
-r:声明变量为只读,同readonly
引用:
${VARNAME}:正规引用,有时候花括号可以省略而已.如:$ANIMAL=pig,echo "there are many ${ANIMAL}s".输出的就是pigs,而如果不加花括号的话那么bash会把$ANIMALs当做一个变量而出错.
撤销变量:
unset VARNAME(记住不能加$变量符).好的编程习惯就是合适的手动撤销变量以释放内存.
制度变量:
readonly VARNAME:变量无法被unset,同时不能被修改.
变量名:只能包含字母,数字和下划线.环境变量都是大写的,所以尽量不要使用大写变量名或者使用没用过的大写变量名.
AGE=${A:-40}:如果A有值的话那么将A赋给AGE,如果不存在那么就把40赋给AGE.这里的:可以省去.
环境变量:
作用范围是当前shell以及其子shell.(其他与本地变量查不多)
export VARNAME(不需要$符号)或declare -x VARNAME:将VARNAME声明为环境变量
查看所有环境变量:env,printenv,export都可以
特殊变量:$?(上一次命令的程序状态返回值)
程序的返回值:
程序自身执行的返回值
程序状态的返回值(是否成功,错误的代码(命令错?目录错?)):1-255都为失败.(1,2,127系统默认了),0表示成功了