一、变量
(一)变量的显示与设置:echo,unset
echo $变量名
unset 变量名
(二)变量的设置规则
- 等号两边不能直接接空格符
- 变量名称只能是英文字母与数字,但是开头字符不能是数字
- 变量内容若有空格符可使用双引号或单引号将变量内容结合起来,但是双引号内的特殊字符如$等,可以保持原本的特性,单引号的特殊字符则仅为一般字符(纯文本)
- 可用转义字符“\”将特殊符号变成一般字符
在一串命令中,还需要通过其它的命令提供的信息,可以使用反单引号“`命令`”或“$(命令)” - 若该变量为了增加变量内容时,则可用“$变量名称”或“${变量}”累加内容
- 若该变量需要在其它子进程进行,则需要以export来使变量变成环境变量
(三)环境变量
env
export 变量名称
(四)影响显示结果的语系变量:locale
[root@localhost ~]
...
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
...
[root@localhost ~]
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
(五)变量键盘读取、数组与声明:read,array,declare
read [-pt] 变量名
参数:
-p:后面可以接提示符
-t:后面可以接等待的“秒数”,不会一直等待用户。
范例一:读取用户输入的内容存入到变量atest中
[root@localhost ~]
hello world
[root@localhost ~]
hello world
范例二:提示用户30秒内输入自己的姓名,将姓名存入到name变量中
[root@localhost ~]
请输入姓名张三
[root@localhost ~]
张三
declare [-aixr] 变量名
参数:
-a:将变量定义为数组类型
-i:将变量定义为整数数字类型
-x:将变量变成环境变量
-r:将变量设置成只读,该变量不可被更改内容,也不能重设,要注销再登录才能复原该变量的类型。
范例一:让变量sum进行100+200+300累加结果
[root@localhost ~]
[root@localhost ~]
600
范例二:将sum变成环境变量
[root@localhost ~]
[root@localhost ~]
declare -ix sum="600"
范例三:让sum变成只读属性,不可变动
[root@localhost ~]
[root@localhost ~]
-bash: sum: readonly variable
范例四:让sum变成非环境变量的自定义变量
[root@localhost ~]
[root@localhost ~]
declare -ir sum="600"
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
haha,hehe,xixi
(六)变量的替换
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/850566c755b5ba49dece4913f43b5bf6.png)
二、 bash的环境配置文件
- /etc/profile:这是系统整体的设置,最好不要修改这个文件
- ~/.bash_profile或~/.bash_login或~/.profile:属于用户个人设置,要改自己的数据就写入这里。只会读取三个文件中其中的一个,读取的顺序是依照上面的顺序。
- 最终读取的配置文件是~/.bashrc文件,也可以将个人数据设置在这个文件
- source:读入环境配置文件的命令
三、数据流重定向
(一)特殊符号
- 标准输入:代码为0,使用<或<<
- 标准输出:代码为1,使用>或>>
- 标准错误输出:代码为2,使用2>或2>>
- 符号>代表以覆盖的方式输出
- 符号>>代表以累加的方式输出
(二)/dev/null垃圾桶黑洞设备与特殊写法
- /dev/null可以吃掉任何导向这个设备的信息,既不显示也不存储。
范例一:将错误的数据丢弃,屏幕上显示正确的数据
[dev@localhost root]$ find /home -name .bashrc 2> /dev/null
/home/dev/.bashrc
范例:将命令的数据全部写入名为list的文件中,以下两种写法都可以
[dev@localhost ~]$ find /home -name .bashrc > list 2>&1
[dev@localhost ~]$ find /home -name .bashrc &> list