DAY26 变数

今天要聊的主题就是变数部分剩下的内容,因为前几天介绍的部分的确是介绍的七七八八的了,但是还是有一小部分是没有介绍到的。像是等等的变数的有效范围,变数的键盘读取、阵列与宣告这几个部分。

那我们先从变数的有效范围先开始好了,变数在使用上是有有效范围的,还记得前几天提及的副程序跟子程序的观念吗?再不同的程序关系中,变数能不能被引用是跟export这只指令有关,被export之後的变数就被视为环境变数,环境变数可以被子程序引用,但是自订变数则不行。那为什麽环境变数可以被子程序所引用呢?这就跟记忆体配置有关,理论上是这样解释的。

(1)当启动一个shell,作业系统会分配一个记忆区块给shell使用,这个记忆体内部的变数可以让子程序使用
(2)父程序利用export功能,可以让自订变数的内容写到上述的记忆区块之中
(3)载入另外一个shell的时候(就是离开父程序进入子程序的时候),子shell可以将父shell的环境变数所在的记忆区块导入自己的环境变数区块当中

因为上述关联,可以让某些变数在相关的程序之间存在,可以帮助使用者更方便的操作环境。
有个地方要稍微注意一下,这个环境变数跟bash的操作环境意思不太一样

那接下来要来介绍变数的键盘读取、阵列与宣告,在使用部分程序的时候,会出现一个对话提示的互动式介面,等待使用者输入资讯,这个部分在bash中也有相关的功能,那跟这个功能相关的指令就是read这只指令

read
(1)读取来自键盘中的变数
(2)常用於shell script的撰写当中

指令格式
read (-pt) 变数名称

相关参数以及选项
-p:後面可以接提示字元
-t:後面可以接等待秒数

declare/typeset(主要介绍declare,typeset本人其实不太会用)
(1)两只指令其实是一样的功能
(2)用在宣告变数的类型
(3)在预设的情况下,bash对於变数有几个基本定义
-变数类型预设为字串,在不只定变数类型的情况下,会将数学的计算式视为字串
-bash环境中的数值运算,预设最多只能到达整数形式
(4)如果不小心将变数设定为唯读,通常要登出再登入才能复原该变数类型

指令格式
declare (-aixr) 变数名称

相关参数以及选项
-a:将变数定义为阵列
-i:将变数定义为整数
-x:用法跟export相同,是将後面接上的变数更改为环境变数
-r:将变数设定为randonly类型,该变数不可被更改内容,也不能unset

以上就是本人介绍变数的部分,如果有缺漏的部分,也麻烦大家多指教


<<:  Day 26 广播自己的BGP

>>:  【Day.26】React进阶 - useEffect v.s useLayoutEffect

Proxmox VE 虚拟机管理操作 (一)

目前已经熟悉了在客体虚拟机内安装作业系统并使用的操作,接着我们开始掌握不同的开关机模式。另外,如何...

【Day 11】Google Apps Script - API 篇 - 转换流程架构与相关服务

介绍 Docs 转 Api Blueprint 的整体流程架构与相关服务。 今日要点: 》API篇...

Day04 - 随意玩之 AES-CBC 加/解密

加密前的资料在前几天我们都有拿到了!接着就是实作 AES-CBC 罗~ 流程如下图 关於 AES-C...

第26天-SourceTree-Git-版本控制-分支

在这篇文章中,会说明分支(branch)在SourceTree内的用法,分支是在版本控制中很重要的一...

[Day 31] 会员登入及登出(三)

今天我们来把登入的功能完成. 会员登入 当验证通过之後, 就可以正常登入, 在登入的时候, 我们会透...