shell脚本中的变量

关于Linux操作系统中当前shell进程与子shell进程的详细解释

如上图所示,使用ps -f可以当前查看Linux操作系统中当前正在运行的进程。

然后敲bash后,相当于在当前的bash shell环境下又创建了一个子bash shell的进程,

如上图所示,后来创建的bash shell的PPID是前一个bash shell的PID

使用./hello.sh的方式去调用脚本就相当于是在原来bash shell的基础上又开了一个子bash shell,然后在子bash shell中去调用脚本。 

敲exit命令时会发现没有退出Linux操作系统就在于当前是在子shell进程中,

开子shell与不开子shell的区别就在于,环境变量的继承关系,如在子shell中设置的当前变量,父shell中是不可见的。

系统预定义变量

在shell编程中存在系统变量和用户变量,其中系统变量的作用范围是全局,而用户变量的作用范围却是分为全局变量和局部变量。

局部变量是只对当前的bash起效。

Linux操作系统中shell编程的系统变量大部分是全局变量,小部分是局部变量。

$HOME表示当前用户的家目录,$PWD表示当前用户的工作目录,$SHELL表示当前的shell会话,$USER表示当前的用户,

如果想查看当前所有的全局环境变量的话,就是用env,printenv的功能和普通的env大致是一样的。

如果想使用系统变量,就使用echo或者printenv加系统变量。

如上图所示,如果只是想查看当前系统变量的值的话,加不加$符无所谓但是如果想使用系统变量的值的话,就必须加上$了。

在Linux操作系统中可以使用set命令可以用来显示当前所有的shell变量(包括环境变量)及其值。

用户的自定义变量

如上图所示,在Linux操作系统中shell编程语言中关于用户变量的定义只需要变量名=变量值,就可以直接定义变量,不需要像其他编程语言一样去定义变量的类型再去给变量赋值,如果变量值中有空格就需要我们将将变量值用引号引起来才能生效,这时定义的变量属于用户变量中的局部变量,即在原来的bash环境中有,在子bash中没有&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值