bash shell的学习

变量的取用与设定:echo,变量设定规则,unset

变量的取用:echo

$ echo $variable

$ echo $PATH

变量的取用就如同上面的范例,利用echo就能够读出,只要需要在变量名称前面加上  $ ,或者是以 ${变量} 的方式来取用都可以!

现在我们知道了变量与变量之间的相关性了,那么我要如何【设定】或者是【修改】某个变量的内容?用【等号(=)】连接变量与他的内容就好了,举例来说:我们将myname这个变量名称的内容设定为YY,那么:

$ echo ${myname}

$ myname=YY

$ echo ${myname}

如此一来,这个变量名称 myname 的内容就带有 YY 这个数据,而由上面的例子当中,我们也知道:在bash当中,当一个变量名称尚未被设定时,预设的内容是【空】的。另外变量在设定时,还是需要符合某些规定的,否则会设定失败,这些规则如下所示!

变量的设定规则:

1.变量与变量内容以一个等号【=】来连结,如下所示:

【myname=YY】

2.等号两边不能直接接空格符:错误【myanme = YY】

3.变量名称只能是英文字母与数字,但是开头字符不能是数字:错误【2myname=YY】

4.变量内容托幼空格符可使用双引号【"  "】或单引号【'  '】将变量连接起来,但是

~双引号内的特殊字符如 $ 等,可以保留原有的特性:【var="lang is $LANG"】则【var $var】可得【lang is en_US.UTF-8】

~单引号内的特殊字符则仅为一般字符,如下所示:【var='lang is $ALNG'】则【var $var】可得【lang is $LANG】

5.可用跳脱字符【 \ 】将特殊符号(如【Enter】,$, \,空格符,'等)编程一般字符

6.在一串指令的执行中,还需要借由其他额外的指令所提供的信息时,可以使用反单引号【指令】或【$(指令)】。

7.若该变量为扩增容量内or那个是,则可用“$变量名称”或 ${变量} 累加内容:如【PATH="$PATH":/home/bin】或【PATH=${PATH}:/home/bin】

8.若该变量需要在其他子程序执行,则需要以export来使变量变成环境变量:【export PATH】

9.通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好)

10.取消变量的方法为使用unset:【unset 变量名称】

用env观察环境变量

用set观察所有变量(含环境变量与自定义变量)

export:自定变量转换成环境变量

env和set两者之间的茶艺在于【该变量是否会被子程序所继续引用】,那么问题来了,什么是子程序?父程序?当你登入Linux并取得一个bash之后,你的bash就是一个独立的程序,这个程序的识别使用的是一个称为程序性标识符,被成为PID。接下来你在这个bash底下所下达的任何指令都是有这个bash所衍生出来的,那些被下达的指令就被成为子程序了。我们在原本的bash底下执行另一个bash,结果操作的环境接口会跑到第二个bash去,那原本的bash就会暂停的情况。若要回到原本的bash去,就只有将第二个bash结束才行。

这个程序概念与变量有啥关系?因为子程序仅会继承父程序的环境变量,子程序不会继承父程序的自定义变量!所以你在原本bash的自定义变量在进入了子程序后就会消失不见,一直到你离开子程序并回到原本的父程序后,这个变量才会出现。

也就是说,如果我们将自定义变量编程环境变量的话,那不久可以让该变量值继续存在于子程序了。那个export指令就很有用啦!如你想要让该变量内容继续的在子程序中使用,那么就执行:$ export 变量名称

这东西用在【分享自己的变量设定给后来呼叫的文件或其他程序】

变量的有效范围

如果在跑程序的时候,有父程序与子程序的不同程序关系时,则变量可否被引用与export有关。被export后的变量,我们可以成他为【环境变量】!环境变量可以被子程序所引用,但是其他的自定义变量内容就不会存在与字成语中。(环境变量=全局变量;自定义变量=局部变量)

在学历方面,为什么环境变量的俄数据可以被子程序所引用,这是因为内存配置的关系!

~当启动一个shell,操作系统会分配一记忆区块给shell使用,此内存之变量可让子程序取用

~若在父程序利用export功能,可以让自定义变量的内容写到上述的记忆区块当中(环境变量)

~当加载另一个shell时(即启动子程序,而离开原本的父程序了),z子shell可以将父shell的环境变量所在的记忆区块导入自己的环境变量区块中。

透过这样的关系,我们就可以让某些变量在相关的程序之间存在,以帮助自己更方便的操作环境!不过要提醒的是,这个【环境变量】与【bash的操作环境】意思不太一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值