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 "总共有$#参数,这些参数分别是$*"

使用$加特殊字符的话可以方便我们日后写脚本的时候可以传参

还有一点就是输出内容时名称打上双引号( "  " )、单引号( '  ' )、反引号( `  ` )的作用

单引号:表示里面的内容为纯文本内容,即使你加上变量或者命令他都是以纯文本的形式来输出的

双引号:在双引号里面可以输出变量和纯文本内容,命令在双引号下系统无法识别到,他只会认为是纯文本的内容

反引号:反引号的作用类似于别名,在反引号里面的内容表示为命令,如果你加入其他字符串进去的话系统会显示命令错误

原文地址:https://www.cnblogs.com/Steamed/p/10026373.html