shell的相关知识(变量、脚本定义)
shell的相关知识(变量、脚本定义)
一、shell的相关知识:
1、对于shell编程语言大体分为:机器语言、汇编语言、高级语言
2、shell变量类型:事先确定数据的存储格式和长度
shell变量分为:字符型、数值型
数值型又分为:整型、浮点型(在shell中一般不使用浮点型数值进行操作)
3、shell:弱类型编程语言
强:变量在使用前,必须事先声明,甚至还需要初始化:
弱:变量用时声明:也不需要区分类型:
显式:明确要转换成什么类型:
隐式:不明确转换成什么类型,系统要看你进行什么操作,它会自动给字符转换成相应类型进行操作,例:11+c=?
默认shell中的变量不能进行运算 例:# C=$A+$B
4、变量赋值:VAR_NAME=VALUE
5、如何定义变量名称:
a、只能包含字母、数字和下划线,并且不能数字开头;
b、不应该跟系统中已有的环境变量重名;
c、最好做到见名知义;
6、bash变量类型:
a 、环境变量
b、本地变量(局部变量)
c、位置变量
d、特殊变量
a、环境变量:作用域为当前shell进程及其子进程;
格式:export varname=value "导出"
b1、本地变量:作用域为整个bash进程;(随时用随时定义)
格式:变量名=:
b1、局部变量:作用域为当前代码段;
格式:local 变量名=值
c、位置变量:$1(第一个参数),$2(第二个参数),...
例:./filetest.sh /etc/fstab /etc/inittab
第一个参数$1:/etc/fstab
第二个参数$2:/etc/inittab
shift:轮替,每执行一个shift就会踢出一个; 格式:shift [n] 可以一下踢出多个
例:./filetest.sh /etc/fstab /etc/inittab /etc/passwd /tmp/config.sh
使用shift 2 就表示把/etc/fstab和/etc/inittab踢出去,而后/etc/passwd就变成了第一个
d、特殊变量:
$?:上一个命令的执行状态返回值;
$#:传送给shell程序的位置参数的数量(参数的个数)
$*:调用shell程序时所传送的全部参数的单字符串,“参数1”“参数2”…形式保存的参数列表
$@:“参数1”“参数2”...形式保存的参数列表
|
评论暂时关闭