Shell变量
变量的类型
在Shell语言中和其他语言一样也有着变量,Shell的变量大致分为两种:环境变量(全局变量)和普通变量(局部变量)
环境变量也称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程Shell中使用,环境变量又可以分为自定义环境变量和bash内置的环境变量,环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可在用户家目录下的. bash_profile或. bashrc(非用户登录模式特有,如:SSH文件中,或在/etc/profile文件中定义,这样每次用户登录时这些变量都将被初始化。
普通变量也可成为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建,
在Shell脚本中用户可以随便定义变量一般要输出的内容、命令、路径过长的话或者频繁出现同样的字符,我们可以定义一个变量来完成,如下:
#!/bash/bin TEST="hello boy" echo "$TEST"
像这样执行脚本得到的结果是
$后面的字符代表变量的名称
变量还有其他特殊字符的应用
比如
$0 表示执行脚本的文件名
$1-99 表示执行脚本后面带的参数以空格为分隔符
$# 统计参数
$* 显示所有的参数
$$ 查看Shell的进程ID
$? 查看上一条命令是否执行成功(0表示执行成功)
下面示范一下
#!/bash/bin echo "这个文件名是:$0" echo "第一个参数是:$1" echo "第二个参数是:$2" echo "第三个参数是:$3" echo "总共有$#参数,这些参数分别是$*"
使用$加特殊字符的话可以方便我们日后写脚本的时候可以传参
还有一点就是输出内容时名称打上双引号( " " )、单引号( ' ' )、反引号( ` ` )的作用
单引号:表示里面的内容为纯文本内容,即使你加上变量或者命令他都是以纯文本的形式来输出的
双引号:在双引号里面可以输出变量和纯文本内容,命令在双引号下系统无法识别到,他只会认为是纯文本的内容
反引号:反引号的作用类似于别名,在反引号里面的内容表示为命令,如果你加入其他字符串进去的话系统会显示命令错误