10.2.5 【Linux】变量的有效范围

简介: 10.2.5 【Linux】变量的有效范围

在学理方面,为什么环境变量的数据可以被子程序所引用呢?这是因为内存配置的关系!理论上是这样的:


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


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


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


通过这样的关系,我们就可以让某些变量在相关的程序之间存在,以帮助自己更方便的操作环境喔! 不过要提醒的是,这个“环境变量”与“bash 的操作环境”意思不太一样,举例来说,PS1 并不是环境变量, 但是这个 PS1 会影响到 bash 的接口。


10.2.6 变量键盘读取、阵列与宣告: read, array, declare


read


要读取来自键盘输入的变量,就是用 read 这个指令了。这个指令最常被用在 shell script 的撰写当中。

read 之后不加任何参数,直接加上变量名称,那么下面就会主动出现一个空白行等待你的输入(如范例一)。 如果加上 -t 后面接秒数,例如上面的范例二,那么 30 秒之内没有任何动作时, 该指令就会自动略过了。


declare / typeset


declare 或 typeset 是一样的功能,就是在“宣告变量的类型”。如果使用 declare 后面并没有接任何参数,那么 bash 就会主动的将所有的变量名称与内容通通叫出来,就好像使用 set 一样啦! 那么 declare 还有什么语法呢?看看先:

由于在默认的情况下面, bash 对于变量有几个基本的定义:


变量类型默认为“字串”,所以若不指定变量类型,则 1+2 为一个“字串”而不是“计算式”。所以上述第一个执行的结果才会出现那个情况的;


bash 环境中的数值运算,默认最多仅能到达整数形态,所以 1/3 结果是 0;

阵列 (array) 变量类型

相关文章
|
4天前
|
Shell Linux
|
4天前
|
Shell Linux
Linux下的Shell基础——变量、运算符、条件判断(二)
Linux下的Shell基础——变量、运算符、条件判断(二)
49 0
|
4天前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
13 2
|
4天前
|
Linux API
|
4天前
|
Linux Perl
Linux|了解如何使用 awk 内置变量
Linux|了解如何使用 awk 内置变量
14 1
|
4天前
|
存储 安全 Java
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
15 0
|
4天前
|
弹性计算 运维 Shell
|
4天前
|
存储 Linux Shell
Linux|Awk 变量、数字表达式和赋值运算符
Linux|Awk 变量、数字表达式和赋值运算符
20 2
|
4天前
|
Java Linux
linux 配置java 环境变量
linux 配置java 环境变量
16 0
|
4天前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
33 0

热门文章

最新文章