1、自定义变量:举例:age=18;用户自己定义的变量,只能在当前shell生效。没有export 。
2、环境变量:举例 export age2=19;子shell中也生效
3、位置参数变量【也是预定义变量的一种,只是由于过多,单独拿出来】
4、预定义变量
总结
1、系统自己的变量一般都是大写。无论自定义变量还是系统预定义变量,调用的时候用$变量
2、查询变量 用set【包括系统环境变量和自定义变量】,用env也可。set的范围更大
env显示用户的环境变量;
set 显示当前shell的定义的私有变量,包括用户的环境变量,按变量名称排序;
export 显示当前导出成用户变量的shell变量,并显示变量的属性(是否只读),按变量名称排序;
3、我们常用的命令,如ls,ifconfig 是如何查找的呢。又如service iptables start等
添加环境变量
重新登陆,失效:
如何永久生效呢,参考这篇文章:
4、自定义一个命令
退出之后重新登陆,输入hello。还是生效。
--------------------------------------------------------------------------------------------------------------------------------------
二、位置参数变量
$n: $0是命令本身 $1是第一个参数
三、预定义变量
$? :返回是否正确;检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。
$*:所有位置参数的内容
$#:位置参数的数量
$$:当前进程的进程号
$!:后台运行的最后一个进程号
#!/bin/bashecho "$#,this is paramenter number"echo "$*,this is content"echo "$$,this is pid"echo "$?,this is check ok ,is 0 or nor 0"