Linux鸟哥视频学习笔记15

认识bash shell第二部分


1.如何将用户自定义的变量变成环境变量呢?


export 变量
在启动shell的时候,系统给shell分配一块内存,用来存储系统环境变量
export可以将用户自定义变量移动到该内存中
当进入子shell时,子shell将父shell的系统环境变量读入到子shell的内存中


实操
name="linc"
echo $name
linc
bash
echo $name
这里进入bash后,$name 为空的

exit 
export name 将自定义的变量name变成环境变量
bash
echo $name 
linc
这里用export后进入bash可以将用户自定义的变量读取出来,在编写脚本中,会经常用到export将自定义变量引入


2.bash下变量设定的规则

Linux鸟哥视频学习笔记15
实操
给变量赋值注意不要加空格,不然会报错

name= my
提示command not found
name=my

不能以数字开头
2name="linc"
报错
name2="linc"

转义符号 "\" 来转义一些特殊符号
name2=zhang\ san\ feng
echo $name2
zhang san feng

引用的例子
path="/lib/modules/`uname -r`/kernel/fs" 
cd $path 
直接进入fs路径下
注:这里用到了``直接将系统中的uname -r 的值引入进来,可以在命令行输入 uname -r 显示内核版本号,这里是将系统变量的值赋自定义变量来使用

例2 
PATH="$PATH":/home/test1 
echo $PATH
在PATH系统变量后加入了新的/home/test1,这里是累加

例3
取消变量的方法 unset命令
echo $path 可以读出内容
unset path
echo $path 读取内容为空

3.关于语系


语系文件的变量locale
locale -a 显示系统的所有语系

改变系统支持的语系,可修改
/etc/sysconfig/i18n

实操
locale  查看当前语系
LANG=en_US.UTF-8  将语系修改为美国英语
LANG=zh_CN.UTF-8  将语系修改为简体中文

注:修改系统变量LANG的值主要是为了解决打开一些文档中出现的乱码问题
乱码问题不一定是LANG值问题,也可能是由于如CRT软件的字符集未设置UTF-8所致,只需要修改即可解决打开中文文档时出现乱码

cat /etc/sysconfig/i18n 查看系统默认的语系
如果想要修改系统默认语系,只需要修改i18n配置文件中的LANG的值即可

4.变量键盘读取和声明变量


read命令
Linux鸟哥视频学习笔记15

实操
read name 执行命令后等待输入
my name is zhangsanfeng
echo $name 
my name is zhangsanfeng
read -p "Please input your name:" name 加-p参数 有提示 然后输入后保存输入的值赋给name
read -p "Please input your name:" -t 5 name 加-t参数,设置时间后面接秒数,限制等待时间,到时间后如果未回车,则变量内容不会变

declare 声明

例子
sum=1+2+3 
echo $sum 
1+2+3
declare -i sum=1+2+3+4
echo $sum 
10
bash 
echo $sum
为空
exit
declare -x sum 将sum设置为系统变量
bash
echo $sum 
10


例2 数组的操作
a[1]=1
a[2]=2
a[3]=3
echo ${a[1]}或者echo "${a[1]}" 这两种方式可以正确读出值
echo ${a[1]},${a[2]},${a[3]} 或 echo "${a[1]},${a[2]},${a[3]}"  
1,2,3