胡伟煌

个人博客

Shell 判断语句

1. if语句 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if … else 语句: if … fi 语句; if … else … fi 语句; if … elif … else … fi 语句。 1.1. if … else if … else 语句的语法: 1234if [ expression ]then Statement(s) to ......

Shell 函数

1. 函数定义 函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。Shell 也支持函数。Shell 函数必须先定义后使用。 Shell 函数的定义格式如下: 1234function_name () { list of commands [ return value ]} 也可以在函数名前加上关键字 function: 12......

Shell 循环语句

1. for for循环一般格式为: 1234567for 变量 in 列表do command1 command2 ... commandNdone 列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。 in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。 示例: 12345678910for loo......

Shell简介

1. shell简介 shell是用户和Linux内核之间的一层代理,解释用户输入的命令,传递给内核。 shell是一种脚本语言(解释性语言)。 Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 Shell有两种执行命令的方式: 交互式(I......

Shell 重定向

Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。 1. 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。 命令输出重定向的语法为: 1$ command > file 这样,输出到显示器的内容就可以被重定向到文件。 输出重定向会......

Shell变量

1. shell变量 Shell支持自定义变量。 1.1. 定义变量 定义变量时,变量名不加美元符号($),如: 1variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母(a-z,A-Z)。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使......

kube-scheduler源码分析(一)之 NewSchedulerCommand

以下代码分析基于 kubernetes v1.12.0 版本。 scheduler的cmd代码目录结构如下: 12345678910111213141516171819kube-scheduler├── BUILD├── OWNERS├── app # app的目录下主要为运行scheduler相关的对象│   ├── BUILD│   ├── config ......

kube-controller-manager源码分析(二)之 DeploymentController

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要以deployment controller为例,分析该类controller的运行逻辑。此部分代码主要为位于pkg/controller/deployment。pkg/controller部分的代码包括了各种类型的controller的具体实现。 controller manager的pkg部分代码目录结构如下: ......

kube-controller-manager源码分析(一)之 NewControllerManagerCommand

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析https://github.com/kubernetes/kubernetes/tree/v1.12.0/cmd/kube-controller-manager 部分的代码。 本文主要分析 kubernetes/cmd/kube-controller-manager部分,该部分主要涉及各种类型的controll......

kubelet源码分析(四)之 syncLoopIteration

以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析kubelet中syncLoopIteration部分。syncLoopIteration通过几种channel来对不同类型的事件进行监听并做增删改查的处理。 1. syncLoop syncLoop是处理变更的循环。 它监听来自三种channel(file,apiserver和http)的更改。 对于看到的任何......