1.修改环境变量
1.1 查看环境变量
终端输入 env
1.2 修改环境变量---> 只对当前终端有效
1.3 修改环境变量----> 在当前用户有效(常用)
当前用户的环境变量修改路径: ~/.bashrc
打开~/.bashrc文件 在最后一行写入 export PATH=$PATH:/home/ubuntu/23111C高级/day2/
保存退出
使源文件生效 source ~/.bashrc 或者重启
1.4 修改环境变量----> 对所有用户有效
换将变量的路径 /etc/bash.bashrc
1.5 修改环境变量---> 对所有用户有效 (重点)
修改环境变量路径: /etc/environment
打开sudo vi /etc/environment文件
在最后添加上 :/home/ubuntu/23111C高级/day2/"
2.shell中的变量
2.1 shell定义变量
1.shell中变量没有数据类型,所有的值默认是字符串
2.shell中的变量默认是全局变量
var 在shell中认为这是一个指令 ls
var= 定义变量var,值是空
var=hello 定义变量var,值是hello
2.2 shell定义变量以及初始化
1.等号的两端不可以存在空格,指令才可以有空格
变量=初始化值
变量='初始化的值' 变量="初始化的值"
var = hello 错误
2.如果初始化的值中有空格
var=hello world 错误
var='hello world' 正确
var="hello world" 正确
3.初始化的值使用变量
a=hello b=$a
把a的值赋值给b变量
b1=$a world 错误,初始化的值存在空格
b2=$aworld 认为aworld是一个变量
b2=${a}world 使用{}认为a是一个变量 ---> helloworld
b3=world$a 展开结果:worldhello
c='$a world' 结果 $a world
d="$a world" 展开结果 hello world
2.3引用shell中的变量
var=hello
echo $var
echo ${var}
2.4位置变量(重点)
位置变量:接收终端输入的字符串,类似C语言argc argv
位置变量多用于函数传参
$0 文件名
$1 终端输入的第1个字符串
$2 终端输入的第2个字符串
....
$9 终端输入的第9个字符串
2.5预定义变量(重点)
shell中自带的变量
$* 除文件名外的所有终端输入的字符串[$1,$n]
$# 除文件名外的所有终端输入的字符串的个数
$@ 除文件名外的所有终端输入的字符串[$1,$n]
$? 多用于函数返回,获取上一个指令的结果 0上一个指令正常结束,非0上一个指令非正常结束 $$ 获取当前的进程号
2.6命令置换(重点)
把指令的输出结果赋值给变量
格式1:变量=`指令`
格式2:变量=$(指令)
c=`ls *.sh`
echo $c
2.7shell中特殊符号
3.输入&输出
3.1 echo
echo输出变量
var=hello
echo $var world 输出hello world
echo '$var world' 输出$var world
echo "$var world" 输出hello world
3.2 read
4.字符串
4.1 计算字符串长度
格式: ${#变量}
var="hello world"
len=${#var}
echo len=$len
4.2字符串连接
变量1=$变量1$变量2 不允许有空格
变量1="$变量1 $变量2" 存在空格需要使用""
4.3截取子串
正序截取
#变量=${变量:m} 从左到右,从下标0开始,截取下标m到最后
#变量=${变量:m:n} 从左到右,从下标0开始,截取下标m到n
倒序截取
变量=${变量:0-m} 从右到左,最后一个字符按1开始,截取倒数第m个后面的所有字符串
变量=${变量:0-m:n} 从右到左,最后一个字符按1开始,截取倒数第m个后面的长度为n的字符串
使用# ## % %%截取
${变量#*string} 从左到右,截取第一个string右边的所有字符串
${变量##*string} 从左到右,截取最后个string右边的所有字符串
${变量%string*} 从右到左,截取第一个string左边的所有字符串
${变量%%string*} 从右到左,截取最后一个string左边的所有字符串
5.shell中的数组
1.shell中只有一维数组,没有多维数组
2.数组的每个元素是字符串
5.1 shell中数组的定义及初始化
5.2 数组的引用
arr=(11 22 33)
1.${arr[index]} ${arr[0]} 输出11
2.${arr[*]} 引用数组的所有元素
3.${arr[@]} 引用数组的所有元素
4.${#arr[index]} 计算数组中index元素的字符串长度
5. ${#arr[@]} 数组的个数 6. ${#arr[*]} --->数组的个数
6.shell的运算符
6.1 shell的算数运算符
(()) -->算数、关系、逻辑、条件等 运算符
$[] -->算数、关系、逻辑、条件等 运算符
let -->算数、关系、逻辑、条件等 指令
expr -->指令算数,关系,逻辑,字符串
6.2 (()) (重点)
可以进行很多运算
格式: ((表达式1,表达式2,表达式3....)) 注意:第一个表达式最最终的结果
引用格式:
格式1:((变量=表达式1,表达式2,表达式3....))
格式2:变量=$((表达式1,表达式2,表达式3....))
6.3 expr(重点)
对字符串操作
题2
题3
题4