在写这个的时候我在想什么是变量。变量难道就是可以变换的量吗?
变量:
变量在编程中是一个非常基础且重要的概念。变量可以看作是数据存储的一个占位符,它被赋予一个名字,可以在程序运行时持有并表示一个值,这个值是可以改变的(除非变量被定义为常量)。你可以将变量想象成一个容器,里面可以放入数据,比如数值、字符串或其他更复杂的数据类型。
在程序中,变量用于:
- 存储信息:例如,存储一个用户的姓名或一个计分板上的得分。
- 运算中转:在进行数学运算或数据处理时,存储中间结果。
- 控制程序流程:例如,布尔变量可以决定一个循环是否继续执行。
name=zhangsan
name='zhangsan'
name="sahngsan"
name='zhang san'
name="zhangsan 1.0"
echo $name可以查看输出的内容
echo $name$aa
变量在程序中的作用:
数据存储:变量允许你存储数据,这些数据可以是简单的数值、字符,也可以是字符串、数组、对象等复杂的数据结构。通过变量,你可以在程序中重复利用这些数据。
代码重用:变量可以被多次读取和修改,这使得你可以编写更加灵活和重用性高的代码。你可以定义一次变量,并在程序的许多地方使用它,而不是重复相同的值或表达式。
提高可读性:通过给变量赋予有意义的名称,代码的可读性和可维护性得以提高。其他开发人员可以更容易地理解代码中的变量代表了什么数据。
实现抽象:变量是程序对现实世界中信息的抽象。例如,你可以有一个名为
temperature
的变量来表示室温,而不是直接在代码中操作具体的温度值。控制流程:变量可以导致程序决定执行不同的代码路径。例如,一个布尔类型的变量
isFinished
可以决定是否跳出循环。参数与返回值:在函数或方法中,变量可用作参数传递,即使一个值从一个函数传递到另一个函数。同样,函数可以通过变量返回数据。
有了上面简单的了解那么继续往下走吧
编写第一个shell脚本
#!/bin/bash 在不同的操作系统中用到的解释器也不一样,可以安装一个bash这里用声明来解释只可以用bash来写。这个声明只可以写道第一行
echo=aa.sh # 这里先创建一个变量
vim aa.sh # 在由vim进去编辑变量
cd /boot
pwd
ls -lh vml*
这样就好了很简单吧
脚本运行的方式有很多种比如下面的
bash aa.sh
或者sh
sh aa.sh
还可以用,执行的方式不一样
. aa.sh
souce aa.sh
./a/sh ./当前目录,以路径的方式执行脚本。用chmod +x aa.sh获得权限,现在就可以跑了
1:指定解释器的方式(先打开一个bash,然后执行脚本,在退出子bash)
bash sh
3:路径方法引用脚本(执行)
要有执行权。
2:直接加载脚本(在当前的bash下运行程序)
. source
每一个bash都是一个小程序。打开的越多消耗的资源就越多。
./aa.sh是在子bash运行的
. aa.sh这个是在当前bash下运行的。
就好比我cd boot 然后ls运行的
对于一个好的脚本来说一定要有注释不然时间长了自己也容易忘记。
echo"当前的目录是:"
echo"我有哪些文件"
重定向
echo "nihao">ll.txt
本来应该在我屏幕上显示的东西被我放到文本里了。重新定义了输出的方向。向右指的叫重定向输出
在任何指令都可以
一个>是直接覆盖了但是在加一个就是追加了
echo "nihao">>ll.txt
追加就是追加,编辑就是编辑。
往右指是重定向输出,往左指就是输入了。
如果我要创建多个账号就要用到脚本了。
passwd --stdin(重定向输入)
std标准in输入
passwd --stdin zhangsan <pass
setenforce 0
这个时候就搞定了。
往脚本里放一下在运行就好了。
标准的输出指的是屏幕
标准的输入指定是键盘
想要改变就要用重定向输入了。
对于标准输出来说要想改成其他的输入可以直接加符号就行,但是对于标准输入就要加如一个选项stdin。
什么叫做错误重定向
我们在安装软件包的时候会有一个./configure过程在执行这个语句的时候可能会出错
在报错的时候不是所有的地方都是报错。
错误重定向就把错误的信息单独放到一个文件。
所有我们可以在使用这个重定向的时候在前面加一个2
./configure 2> error.log
2可以让正常的消息正常显示,只把错误的信息单独显示出来。
1是正常显示,1是可以省去的。
如果我想把所有的信息都放到文本里面就可以加一个“&”的符号可以
管道符“|”
把前面的命令的输出作为后面命令的输入
作用就是过滤。比如我要单独看磁盘利用率
以“/”为开始以“$”为结束
但是我只想要那个的百分之几的话
df -hT | grep "/$" | awk '{print $6}'这个表示是的是该行的第6列
变量的学习
name=zhangsan
name是变量的名称zhangsan是变量的值。