【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

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

相关文章
|
3月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
470 9
|
3月前
|
算法 Linux Shell
Linux实用技能:打包压缩、热键、Shell与权限管理
本文详解Linux打包压缩技巧、常用命令与原理,涵盖.zip与.tgz格式操作、跨系统传文件方法、Shell运行机制及权限管理,助你高效使用Linux系统。
Linux实用技能:打包压缩、热键、Shell与权限管理
|
3月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
399 2
|
5月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
719 1
|
7月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
236 4
|
7月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
465 3
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
723 25
|
8月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
201 18
|
存储 Shell Linux
【Shell 编程】变量 | 特殊变量与标准变量 | 基本语句介绍
【Shell 编程】变量 | 特殊变量与标准变量 | 基本语句介绍
287 0
|
运维 Shell Python
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(一)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)
247 0