【Linux】Bash Shell之变量设置

简介:

变量设置规则:

1、 变量与变量的内容以等号“=”连接;

2、 等号两边不能够直接接空格符;

3、 变量名称只能是英文字母与数字,但数字不能是开头字符;

4、 若有空格符,可以使用双引号或单引号将变量内容结合起来,但要特别注意,双引号内的特殊字符可以保持变量特性,但单引号内的特殊字符则仅为一般字符;

5、 必要时需要以转义字符“”将特殊字符变成一般字符;

6、 在一串命令中,还需要通过其他命令提供的信息,可以使用这样的方式“command”(请特别注意,是键盘上方的数字键1左边的那个按键,而不是单引号。其外,这个符号之内的命令会先执行,其执行出来的结果将作为外部输入信息。(例:ls –l locate crontab` 先locate文件名数据,再用ls命令处理))。

7、 若变量为扩展变量内容,需以双引号及$变量名称,如“”$PATH”:/home”继续累加内容;

8、 若该变量需要在其他子程序中执行,则需要用export使变量变成环境变量(变量分为local变量和env变量,只有env变量才具有遗传性,但是子进程中的无论是local还是env都会随着子程序的消失而消失,而且父进程是无法使用其变量的);

9、 通常大写字母为系统默认变量,自行设置变量可以使用小写字母,便于判断(根据用户兴趣与喜好);

10、取消变量的方法为:“unset 变量名称”。
环境变量功能

1、 环境变量的说明:env

Environment的缩写,列出所有环境变量。

2、其他所有变量的说明:set

观察当前shell环境下的所有变量。一般来说,不论是否为环境变量,只要与当前shell的操作接口有关的变量,通常都会被设置为大写字母,即:在Linux默认情况下,使用{大写字母}来设置的变量一般为系统内定需要的变量。

需要注意的是:若当时有相当多人同时在线,那么你的变量只能给自己使用(除非改的是系统的默认参数文件,如/etc/profile),而不会干扰到别人。由于登录Linux之后会取得一个PID,而你的设置将只对这个PID与子程序。此外,这次登录所进行的变量(无论是local还是env)设置,如果没有更改配置文件,那么这次设置的变量在下次登录时将被取消(因为没有程序PID)。所以,如果想要变量每次都能在你登录时自动设置好,那么就必须将设置写入登录时加载的设置文件。

3、自定义变量转环境变量:export

取得一个bash后,即可得到一个程序,再执行一次bash,将进入“子程序”。那么进入子程序,所有父进程中自定义的变量将不再继续存在,会存在于子程序中的,仅有环境变量。

在引用他人的文件和其他程序时,export显得相当重要,如果忘记设置export的话,那么不同文件中的相同变量值,将需要一再重复设置,所以,只要在头一个文件使用export,那么后续的文件引用时,将会把变量内容读进来。如果export后面没有变量,此时将会把所有的“环境变量”显示出来。

4、语系文件变量locale

使用locale系统列出当前liunx主机内保存的语系文件,这些文件放在/etc/lib/locale/目录中,但是,当前的shell环境所支持的语系,要根据SUPPORTED这个变量来确定。如果想要修改系统的语系支持,可以修改/etc/sysconfig/il8n文件。当然还有一个比较安全的做法,通过个人的环境设置文件来设置LANG。

5、 变量键盘读取read、数组 array、声明 declare

read [-pt] variable

-p 后面可以接提示符

-t 后面可以接等待的秒数,指定秒数内没反应则命令会自动略过。

declare/typeset 两个功能一样,声明变量属性,后面没有任何参数,会将所有变量名和内容都调出来,就像set一样。

语法:declare [-aixr] variable

-a 变量定义为数组

-i 变量定义为整数数字

-x 变量定义为境变量

-r 变量定义为只读

array 读取,使用${数组}【${A[0]}】

6、获取变量的两种方式 echo $HOME和echo ${HOME}

在${variable}中可以修改变量【echo ${var#/*/}】

7、 命令别名设置:alias、unalias

定义规则与变量定义规则相同。

相关文章
|
2天前
|
Linux API
|
3天前
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
|
3天前
|
存储 Linux C++
【Linux】详解信号的保存&&信号屏蔽字的设置
【Linux】详解信号的保存&&信号屏蔽字的设置
|
4天前
|
Linux Perl
Linux|了解如何使用 awk 内置变量
Linux|了解如何使用 awk 内置变量
11 1
|
4天前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
10 1
|
5天前
|
存储 安全 Linux
从基础到高级:Linux用户与用户组权限设置详解
从基础到高级:Linux用户与用户组权限设置详解
|
5天前
|
Shell Linux 信息无障碍
5 个有用的 Linux Shell 转义序列
5 个有用的 Linux Shell 转义序列
|
6天前
|
存储 安全 Java
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
【探索Linux】P.21(多线程 | 线程同步 | 条件变量 | 线程安全)
11 0
|
6天前
|
Linux
linux设置全局命令
linux设置全局命令
11 0
|
6天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
24 5