Shell编程规范与变量

在写这个的时候我在想什么是变量。变量难道就是可以变换的量吗?

变量:

变量在编程中是一个非常基础且重要的概念。变量可以看作是数据存储的一个占位符,它被赋予一个名字,可以在程序运行时持有并表示一个值,这个值是可以改变的(除非变量被定义为常量)。你可以将变量想象成一个容器,里面可以放入数据,比如数值、字符串或其他更复杂的数据类型。

在程序中,变量用于:

  1. 存储信息:例如,存储一个用户的姓名或一个计分板上的得分。
  2. 运算中转:在进行数学运算或数据处理时,存储中间结果。
  3. 控制程序流程:例如,布尔变量可以决定一个循环是否继续执行。
name=zhangsan
name='zhangsan'
name="sahngsan"
name='zhang san'
name="zhangsan 1.0"

echo $name可以查看输出的内容
echo $name$aa

变量在程序中的作用:

  1. 数据存储:变量允许你存储数据,这些数据可以是简单的数值、字符,也可以是字符串、数组、对象等复杂的数据结构。通过变量,你可以在程序中重复利用这些数据。

  2. 代码重用:变量可以被多次读取和修改,这使得你可以编写更加灵活和重用性高的代码。你可以定义一次变量,并在程序的许多地方使用它,而不是重复相同的值或表达式。

  3. 提高可读性:通过给变量赋予有意义的名称,代码的可读性和可维护性得以提高。其他开发人员可以更容易地理解代码中的变量代表了什么数据。

  4. 实现抽象:变量是程序对现实世界中信息的抽象。例如,你可以有一个名为temperature的变量来表示室温,而不是直接在代码中操作具体的温度值。

  5. 控制流程:变量可以导致程序决定执行不同的代码路径。例如,一个布尔类型的变量isFinished可以决定是否跳出循环。

  6. 参数与返回值:在函数或方法中,变量可用作参数传递,即使一个值从一个函数传递到另一个函数。同样,函数可以通过变量返回数据。

有了上面简单的了解那么继续往下走吧

编写第一个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是变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值