摘要:
一、文件描述符 Linux系统将每个对象当作文件处理。这包括输入和输出进程。Linux用文件描述符(file descriptor )来标识每个文件对象。文件描述符是一个非负整数,可以唯一标识会话中打开的文件。每个进程一次最多可以有九个文件描述符。 出于特殊目的,bash shell保留了前三个文件 阅读全文
摘要:
bash shell提供了一些不同的方法来从用户处获得数据,包括命令行参数(添加在命令后的数据)、命令行选项(可修改命令行为的单个字母)以及直接从键盘读取输入的能力。 一、命令行参数 向shell脚本传递数据的最基本方法是使用命令行参数。bash shell会将一些称为位置参数(positional 阅读全文
摘要:
一、while循环 while命令某种意义上是if-then语句和for循环的混杂体。while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码0。它会在每次迭代的一开始测试test命令。在test命令返回非零退出状态码时,while命令会停止执行那组命令。 阅读全文
摘要:
bash shell提供了for命令,允许你创建一个遍历一系列值的循环。每次迭代都使用其中一个值来执行已定义好的一组命令。 格式: for var in list do commands done 例子: #!/bin/bash for test in 北京 上海 深圳 成都 武汉 郑州 do ec 阅读全文
摘要:
Spring的事件发布是使用观察者模式实现的。先看下观察者模式。 观察者(Observer)模式中包含两种对象,分别是目标对象和观察者对象。在目标对象(被观察者)和观察者对象间存在着一种一对多的对应关系,当这个目标对象的状态发生变化时,所有依赖于它的观察者对象都会得到通知并执行它们各自特有的行为。 阅读全文
摘要:
AbstractApplicationContext.java refresh方法 registerBeanPostProcessors(beanFactory); protected void registerBeanPostProcessors(ConfigurableListableBeanF 阅读全文
摘要:
加载完BeanDifinition后,可以对BeanDifinition做某些操作,比如修改BeanDifinition以及新增BeanDifinition。Spring提供了BeanFactoryPostProcessor接口对BeanDifinition进行扩展。 AbstractApplica 阅读全文
摘要:
AbstractApplicationContext类refresh方法调用obtainFreshBeanFactory加载BeanDifinition到BeanFactory中,接下来执行beanFactory的准备工作为下面的执行作铺垫。 prepareBeanFactory方法为beanFac 阅读全文
摘要:
bash shell提供了两项可在if-then语句中使用的高级特性: 用于数学表达式的双括号 用于高级字符串处理功能的双方括号 一、使用双括号 双括号命令允许你在比较过程中使用高级数学表达式。双括号命令的格式如下: (( expression )) 例子: #!/bin/bash var=10 i 阅读全文
摘要:
一、检查目录 -d检查是否存在且是目录。 #!/bin/bash jump_directory=/home/arthur if [ -d $jump_directory ]; then echo "The $jump_directory directory exists." cd $jump_dir 阅读全文