摘要: 和其它编程语言类似,Shell 也支持两种分支结构(选择结构),分别是 if else 语句和 case in 语句。在《Shell if else》一节中我们讲解了 if else 语句的用法,这节我们就来讲解 case in 语句。当分支较多,并且判断条件比较简单时,使用 case in 语句就 阅读全文
posted @ 2019-05-03 21:47 zhouyuqiang 阅读(7803) 评论(0) 推荐(0) 编辑
摘要: [[ ]]是 Shell 内置关键字,它和 test 命令类似,也用来检测某个条件是否成立。test 能做到的,[[ ]] 也能做到,而且 [[ ]] 做的更好;test 做不到的,[[ ]] 还能做到。可以认为 [[ ]] 是 test 的升级版,对细节进行了优化,并且扩展了一些功能。[[ ]] 阅读全文
posted @ 2019-05-03 21:38 zhouyuqiang 阅读(263) 评论(0) 推荐(0) 编辑
摘要: test 是 Shell 内置命令,用来检测某个条件是否成立。test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test。test 命令有很多选项,可以进行数值、字符串和文件三个方面的检测。Shell test 命令的用法为: test expression 当 test 判断 e 阅读全文
posted @ 2019-05-03 21:20 zhouyuqiang 阅读(5360) 评论(0) 推荐(1) 编辑
摘要: 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他们都叫小明(对应于变量名),但是由于所在的班级(对应于作用域)不同,所以不会造成混乱。但是如果同一个班级中有两个叫小明的同学,就必须用类似于“大小明”、“小小明”这样的命名来区分他们。Shell 阅读全文
posted @ 2019-04-30 17:35 zhouyuqiang 阅读(10264) 评论(0) 推荐(0) 编辑
摘要: Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式: variable=`command`variable=$(command) 第一种方式把命令用反引号` `(位于 Esc 键的下方)包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;第二种方式把命令用$()包 阅读全文
posted @ 2019-04-30 17:25 zhouyuqiang 阅读(23155) 评论(0) 推荐(2) 编辑
摘要: 单引号和双引号的区别 前面我们还留下一个疑问,定义变量时,变量的值可以由单引号' '包围,也可以由双引号" "包围,它们到底有什么区别呢?不妨以下面的代码为例来说明: #!/bin/bash url="http://c.biancheng.net" website1='C语言中文网:${url}' 阅读全文
posted @ 2019-04-30 17:21 zhouyuqiang 阅读(12686) 评论(0) 推荐(4) 编辑
摘要: 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。 1、将SQL语句直接嵌入到shell脚本 阅读全文
posted @ 2019-04-30 15:20 zhouyuqiang 阅读(3379) 评论(0) 推荐(0) 编辑
摘要: centos7 没有python-pip包就执行命令 yum -y install epel-release 执行成功之后,再次执行yum install python-pip 对安装好的pip进行升级 pip install --upgrade pip 至此,pip工具就安装好了。 阅读全文
posted @ 2019-04-30 12:25 zhouyuqiang 阅读(4258) 评论(0) 推荐(0) 编辑
摘要: sed和awk用法 Sed sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent 阅读全文
posted @ 2019-04-29 17:42 zhouyuqiang 阅读(538) 评论(0) 推荐(0) 编辑
摘要: cat aa.txt |sed 's/\"//g' 结果是:hello 双引号 操作 sed -i 's/"//g' config_20130101.dat 单引号操作 sed -i $'s/\'//g' kkk.txt sed -i ′s/\%//g‘s表示替换,\%就表示百分号,s/\%//将% 阅读全文
posted @ 2019-04-29 17:38 zhouyuqiang 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 删除最后一个字符 如:1.1.1, 在file文件中: sed '$s/.$//' file 或者: head -c-2 去掉最后一个字符 head -c-3 去掉最后二个字符 head -c-4 去掉最后三个字符 阅读全文
posted @ 2019-04-29 17:35 zhouyuqiang 阅读(8226) 评论(0) 推荐(0) 编辑
摘要: 需求: shell读取文件内容,然后把内容赋值给变量然后进行字符串处理 实现: dataline=$(cat /root/data/data.txt) echo $dataline 阅读全文
posted @ 2019-04-29 17:30 zhouyuqiang 阅读(13247) 评论(1) 推荐(0) 编辑
摘要: 只添加本地修改的一个文件 如,只添加package.json一个文件 git add package.json git commit -m "修改qa环境版本号" git push origin qa 阅读全文
posted @ 2019-04-29 14:19 zhouyuqiang 阅读(3573) 评论(0) 推荐(0) 编辑
摘要: git reset soft,hard,mixed之区别深解 git reset --hard 强制更新覆盖本地 GIT reset命令,似乎让人很迷惑,以至于误解,误用。但是事实上不应该如此难以理解,只要你理解到这个命令究竟在干什么。 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也 阅读全文
posted @ 2019-04-29 10:27 zhouyuqiang 阅读(6992) 评论(0) 推荐(0) 编辑
摘要: import sys# print(0)## sys.exit(0)## print(123)# print(sys.version)# print(sys.maxsize)# print(sys.platform)# 可以实现py文件作为脚本文件执行,实现外部往内部传参# print(sys.ar 阅读全文
posted @ 2019-04-29 07:45 zhouyuqiang 阅读(238) 评论(0) 推荐(0) 编辑
摘要: """生成单级目录:os.mkdir('dirname')列举目录下所有资源:os.listdir('dirname')重命名:os.rename("oldname","newname")"""import os# os.mkdir('a')# os.makedirs('a/b/c')# os.re 阅读全文
posted @ 2019-04-29 07:45 zhouyuqiang 阅读(150) 评论(0) 推荐(0) 编辑
摘要: # time模块import time# 时间戳res = time.time() # ***print(res, type(res))# time.sleep(1) # ***# print(123)# 自定义延迟# old_time = time.time()# while time.time( 阅读全文
posted @ 2019-04-29 07:44 zhouyuqiang 阅读(187) 评论(0) 推荐(0) 编辑
摘要: import m1print(m1)# import sys# sys.path.append(r'D:\python周末四期\day06\代码\part8\a')## import m2# print(m2)## sys.path.append(r'D:\python周末四期\day06\代码\p 阅读全文
posted @ 2019-04-29 07:43 zhouyuqiang 阅读(368) 评论(0) 推荐(0) 编辑
摘要: # 默认第一个路径为当前执行文件所在的路径import sysprint(sys.path)sys.path.clear()print(sys.path)# import json# print(json)# import socket# print(socket)# from json impor 阅读全文
posted @ 2019-04-29 07:42 zhouyuqiang 阅读(163) 评论(0) 推荐(0) 编辑
摘要: """# 内置 | 自定义 模块import timeprint(time)import my_timeprint(my_time.num)# time.sleep(7)from time import sleepsleep(7)from my_time import numprint(num)"" 阅读全文
posted @ 2019-04-29 07:37 zhouyuqiang 阅读(427) 评论(0) 推荐(0) 编辑
摘要: import m1# print('模块导入执行', m1.num)# import sys# print(sys.path)import json# print(json)if __name__ == '__main__': import mm mm.t1() 阅读全文
posted @ 2019-04-29 07:36 zhouyuqiang 阅读(688) 评论(0) 推荐(0) 编辑
摘要: print('加载')import m1print(m1.m2.y)print('结束') 阅读全文
posted @ 2019-04-29 07:35 zhouyuqiang 阅读(172) 评论(0) 推荐(0) 编辑
摘要: """# 在执行文件中能不能直接使用模块中的名字# import m1# import m1 as m# print(m1.a)# print(m1.b)# print(m.a)# print(m.b)# 已经明确当前文件不去产生a,b,c三个名字,那a,b,c只有在m1中有,能不能直接用from 阅读全文
posted @ 2019-04-29 07:35 zhouyuqiang 阅读(446) 评论(0) 推荐(0) 编辑
摘要: # 第一次导入模块,已经完成导入模块的三步,# 编译=>运行(产生名称空间存放名字)=>执行文件产生名字指向模块的名称空间import m1# 再次导入:前两步是重复操作,所以只会在当前文件再产生一个名字指向模块的名称空间import m1print(m1)print(m)a = 10b = aa 阅读全文
posted @ 2019-04-29 07:34 zhouyuqiang 阅读(315) 评论(0) 推荐(0) 编辑
摘要: # import m1## print(m1.price)# mmmmmmmmmmmmmmmmmmmmmmm1# import mmmmmmmmmmmmmmmmmmmmmmm1# print(mmmmmmmmmmmmmmmmmmmmmmm1.num)# print(mmmmmmmmmmmmmmmmm 阅读全文
posted @ 2019-04-29 07:33 zhouyuqiang 阅读(267) 评论(0) 推荐(0) 编辑
摘要: # 1.将具有共性的功能放在一个py文件中,这样的文件就可以称之为模块# 2.将封装好的模块对外提供功能# 3.在要使用模块功能的地方进行导入 => 使用功能# 在要使用模块功能的文件中用import关键词导入模块# 语法:import 模块名import m1 # m1名字就是模块m1的文件对象, 阅读全文
posted @ 2019-04-28 22:33 zhouyuqiang 阅读(178) 评论(0) 推荐(0) 编辑
摘要: # 模块的概念:一系列功能的集合体,可以给其他文件提供功能(数据)'''常见的四种模块:1.使用python编写的.py文件2.把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)3.使用C编写并链接到python解释器的内置模块4.已被编译为共享库或DL 阅读全文
posted @ 2019-04-28 22:32 zhouyuqiang 阅读(134) 评论(0) 推荐(0) 编辑
摘要: # 装饰器:装饰器就是闭包的一个应用场景# -- 外层函数与内存函数形成的闭包结构的一种综合使用# def huaping():# print('插花功能')# 需求:如何拓展一个原有函数的功能# -- 修改源代码# -- 创建一个包含该功能和其他新功能的新函数# 开放封闭原则:# 开放:拓展功能的 阅读全文
posted @ 2019-04-28 22:30 zhouyuqiang 阅读(129) 评论(0) 推荐(0) 编辑
摘要: # 为登录功能添加账号检验功能:必须是3个及以上英文字母组成def check_user(func): def inner(user, pwd): if not (user.isalpha() and len(user) >= 3): return '账号不合法' res = func(user, 阅读全文
posted @ 2019-04-28 22:30 zhouyuqiang 阅读(138) 评论(0) 推荐(0) 编辑
摘要: # closure:闭包# 闭包:定义在函数内部的函数,这个内部的函数就是闭包# 应用场景:# 1.可以去使用其他函数的内部变量,且还可以保证调用位置不变(闭包的函数对象作为那个函数的返回值)def outer(): count = 3000 def fn(): print(count) # 能使用 阅读全文
posted @ 2019-04-28 22:29 zhouyuqiang 阅读(131) 评论(0) 推荐(0) 编辑
摘要: # part1'''x = 100def fn(): a = 10fn()# 没有缩进直接使用, 和在其他函数中,都只能使用x,不能使用函数内部的adef func(): print(x)func()# 问题点:什么导致变量的访问权限'''# part2# 名称空间:存放变量名与栈区内存地址的对应关 阅读全文
posted @ 2019-04-28 22:28 zhouyuqiang 阅读(109) 评论(0) 推荐(0) 编辑
摘要: '''# 函数的嵌套定义:在函数内部定义函数# 诞生的理由:一个函数想使用另一个函数内部的变量,可以定义在其内部def func(): a = 10 def fn(): print(a) return fnnew_fn = func()new_fn()''''''# global关键字: 统一局部与 阅读全文
posted @ 2019-04-28 22:28 zhouyuqiang 阅读(5062) 评论(0) 推荐(0) 编辑
摘要: # 函数的嵌套调用:在一个函数内部调用另一个函数def fn1(): passdef fn2(): fn1() # 函数的嵌套调用def fn3(): fn2() # 函数的嵌套调用fn3()# 案例:# 求两个数最大值def max_two(n1, n2): if n1 > n2: return 阅读全文
posted @ 2019-04-28 22:27 zhouyuqiang 阅读(1888) 评论(0) 推荐(0) 编辑
摘要: def fn(a, b): print(a, b)# 实参:# 1.位置实参: 按位置先后进行传参,a,b不能被颠倒位置进行传参,a永远比b先接受值fn(10, 20)fn(20, 10)a = 100b = 200fn(a, b)fn(b, a)# 传参两种方式:实参名 | 实参具体值# 2.关键 阅读全文
posted @ 2019-04-28 22:26 zhouyuqiang 阅读(492) 评论(0) 推荐(0) 编辑
摘要: '''形参种类:1)位置形参 -- 普通位置形参 -- 默认值形参 -- 可变长位置形参2)关键字形参 -- 有默认值关键字形参 -- 无默认值关键字形参 -- 可变长关键字形参'''def fn1(a, b, *, x, y): pass# fn1()# 位置形参与关键字形参的分水岭 *# 重点: 阅读全文
posted @ 2019-04-28 22:26 zhouyuqiang 阅读(565) 评论(0) 推荐(0) 编辑
摘要: # part1owen_a = 10# owen_a存放10的地址,所以也是对象,普通的整型对象# 函数对象:存放函数地址的变量就叫函数对象,就是函数名def fn(): print(1) print(2) print(3) return 1print(fn)# 1.函数对象():拿到函数地址并执行 阅读全文
posted @ 2019-04-28 22:26 zhouyuqiang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: # 形参与实参def fn(a, b=10, *args, c, d=20, e, **kwargs): passa = 100b = '200'def fn1(a, b): # 形参:在函数定义时()里出现的参数 print(a, b)fn1(a, '2000') # 实参:在函数调用时()里出现 阅读全文
posted @ 2019-04-28 22:25 zhouyuqiang 阅读(216) 评论(0) 推荐(0) 编辑
摘要: '''1、功能的单一化2、函数内部需要外部的资源:通过函数的参数来实现3、函数执行后的结果需要告诉外界:通过返回值告诉给外界'''a = 10b = 20def fn(a, b): # return a + b # print(a + b) pass# print(fn(a, b))fn(a, b) 阅读全文
posted @ 2019-04-28 22:24 zhouyuqiang 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 一、复习 二、今日内容 三、如何定义函数 四、函数的参数 形参与实参 两种实参 两大形参分类 两个带默认值的形参 不带默认值与带默认值形参结合使用 可变长位置形参与可变长关键字形参 总结 可变长整体传参:打散传值 五、函数对象 六、函数的嵌套调用 七、名称空间 八、函数的嵌套定义 两个与函数有关的关 阅读全文
posted @ 2019-04-28 22:21 zhouyuqiang 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 复习 今日内容 模块 模块别名 模块的多次导入 模块在链式导入时的执行流程 FROM...IMPORT 语法 模块的两种执行方式 自执行 作为模块被导入执行 共存 模块的加载顺序 IMPORT与FROM...IMPORT:导入的方式采用的是绝对路径 环境变量的项目运行 项目目录分析 循环导入 包 导 阅读全文
posted @ 2019-04-28 22:14 zhouyuqiang 阅读(133) 评论(0) 推荐(0) 编辑