prism

bash-shell高级编程--操作符与相关主题

。_饼干妹妹 提交于 2020-04-06 12:58:52
操作符与相关主题 操作符 赋值 变量赋值,初始化或者修改变量的值 = 通用赋值操作符,可用于算术和字符串赋值。 var = 12 car = bmw # 在=号后面不能出现空白字符的 不要混淆 = 赋值操作符与 = 测试操作符 # = 在这里是测试操作符 if [ " $string1 " = " $string2 " ] # if [ "X$string1" = "X$string2" ] 是一种更安全的做法, # 这样可以防止两个变量中的一个为空所产生的错误. # (字符"X"作为前缀在等式两边是可以相互抵消的.) then command fi 算术操作符 + 加法计算 - 减法计算 * 乘法计算 / 除法计算 ** 幂运算 # 在Bash, 版本2.02, 中开始引入了"**" 幂运算符. let "z=5**3" echo "z = $z " # z = 125 % 模运算,或者说是求余运算 求最大公约数 #!/bin/bash # gcd.sh: 最大公约数 #使用Euclid的算法 # 两个整数的"最大公约数" (gcd), #+ 就是两个整数所能够同时整除的最大的数. # Euclid算法采用连续除法. # 在每一次循环中, #+ 被除数 <--- 除数 #+ 除数 <--- 余数 #+ 直到 余数 = 0. #+ 在最后一次循环中, gcd = 被除数. # #

UML对象关系与箭头对应表

こ雲淡風輕ζ 提交于 2020-04-06 12:24:46
对象和类 类是构造对象的模板 封装是与对象有关的一个重要的概念,从形式上来看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,操作数据的过程称为方法。 类之间的关系 在类之间最常见的关系有 依赖(“uses-a”) 聚合(“hsa-a”) 继承(“is-a”) 依赖是说两个类之间有依赖关系,聚合是一个类包含另一个类。 UML中关系与箭头对应表 点赞 收藏 分享 文章举报 Achou.Wang 博客专家 发布了370 篇原创文章 · 获赞 153 · 访问量 34万+ 他的留言板 关注 来源: oschina 链接: https://my.oschina.net/u/4312837/blog/3216071

HTTP协议详解

前提是你 提交于 2020-04-06 11:44:57
HTTP协议详解 HTTP的主要特点 支持客户/服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、 POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规 模小,因而通信速度很快。 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的 应答后,即断开连接。采用这种方式可以节省传输时间。 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着 如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。 HTTP 协议之 URL http (超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于 TCP 的 连接方式, HTTP1.1 版本中给出一种持续连接的机制,绝大多数的 Web 开发,都是构建在 HTTP 协议之 上的 Web 应用。 HTTP URL (URL是一种特殊类型的URI,它包含了查找某个资源足够的信息)的格式如下: http://host [ ":" port ] [ abs_path ]

libcudart.so.10.0: cannot open shared object file: No such file or directory

倾然丶 夕夏残阳落幕 提交于 2020-04-06 11:43:06
tensorflow 2.0.0b1 cuda:10.1 报错,使用 tf.test.is_gpu_available()测试时也是false,原来是这个版本只支持10.0,不支持10.1. 解决办法:无需删除cuda10.1,也无需再下载cuda10.0包,直接 conda install cudatoolkit = 10.0。 https://github.com/tensorflow/tensorflow/issues/30638 来源: oschina 链接: https://my.oschina.net/u/4412457/blog/3220451

trap--shell脚本调试的不二人选

喜夏-厌秋 提交于 2020-04-06 10:57:20
trap简介 trap的格式如下,功能就是捕捉信号,并对信号进行处理 trap [-lp] [[arg] sigspec ...] arg 可以是shell命令或者自定义函数 sigspec 可以是以下的一个或多个 定义在< signal.h >中的信号名或者数值。信号名的大小写不敏感,SIG这个前缀也是可选的。以下的命令的效果都是一样的 trap "echo SIGINT" SIGINT trap "echo SIGINT" sigint trap "echo SIGINT" 2 trap "echo SIGINT" int trap "echo SIGINT" Int 调试脚本时,trap经常用到的信号量 EXIT:在 shell 退出前执行 trap 设置的命令,也可以指定为0 RETURN:在 . 和``source 执行其他脚本返回时,执行 trap`设置的命令 DEBUG:在任何命令执行前执行trap设置的命令,但对于函数仅在函数的第一条命令前执行一次 ERR:在命令结果为非0时,执行trap设置的命令 #! /bin/bash # 使用trap实现在每个函数开始之前打印以便打印,这样就能准确的定位到函数的位置 # 从而实现对脚本的调试 trap "echo before a func is called" DEBUG # 当. 或者 source 调用结束的时候出发

spark sql原理---上篇

╄→гoц情女王★ 提交于 2020-04-06 10:51:37
spark sql架构 Spark SQL 的整体架构如下图所示 上图可见,无论是直接使用 SQL 语句还是使用 DataFrame,都会经过如下步骤转换成 DAG 对 RDD 的操作。 Parser 解析 SQL,生成 Unresolved Logical Plan 由 Analyzer 结合 Catalog 信息生成 Resolved Logical Plan Optimizer根据预先定义好的规则对 Resolved Logical Plan 进行优化并生成 Optimized Logical Plan Query Planner 将 Optimized Logical Plan 转换成多个 Physical Plan CBO 根据 Cost Model 算出每个 Physical Plan 的代价并选取代价最小的 Physical Plan 作为最终的 Physical Plan Spark 以 DAG 的方法执行上述 Physical Plan 在执行 DAG 的过程中,Adaptive Execution 根据运行时信息动态调整执行计划从而提高执行效率 Parser Spark SQL 使用 Antlr 进行记法和语法解析,并生成 UnresolvedPlan。 当用户使用 SparkSession.sql(sqlText : String) 提交 SQL 时

语音数据集汇总

允我心安 提交于 2020-04-06 10:49:57
1. 噪声集 The QUT-NOISE dataset ,来自昆士兰科技大学(QUT)的噪声数据集,其中包括了Café,Car,Home,Reverb,Street,五种场景,每种场景下又分了两个小场景,一共十个场景,约12小时数据,其中reverbe_pool 感觉不常见,训练时可以考虑删除。 Environmental Background Noise dataset ,来自UTDallas的噪声数据集,包括三个场景,Babble,Car,Machinery,数据约30秒一条,一共253条。 MUSAN corpus 来自David Snyder and Guoguo Chen and Daniel Povey,里面有三个文件夹,分别是music,speech 和 noise。noise分类下有两个文件夹,数据长短不一,包含了各种生活场景,扩展噪声集的丰富性,930条。 Nonspeech dataset 来自Ohio State University,数据长短不一,包括各种生活场景,扩展噪声集的丰富性,一共100条。 2. 语音集 点赞 收藏 分享 文章举报 Li Kang 发布了28 篇原创文章 · 获赞 42 · 访问量 6万+ 私信 关注 来源: oschina 链接: https://my.oschina.net/u/4266968/blog/3216377

MIT6.0001 笔记,LECTURE 5:Tuples, List (aliasing, mutability, cloning详解)

半城伤御伤魂 提交于 2020-04-06 09:34:30
这一篇博客主要来解释list的高级特性,主要包括aliasing,mutability,和cloning。这三个特性在赋值时需要特别注意。本篇笔记和代码都来自于MIT的公开课,第五课。 《Introduction to Computer Science and Programming in Python》 。 aliasing 对于 简单的数据类型 ,比如int,使用 b = a 赋值之后,b只是得到了a的地址。如果修改b的值,则b的地址同时改变。 a = 1 b = a print ( 'id(a) is ' , id ( a ) ) print ( 'id(b) is ' , id ( b ) ) print ( 'a is' , a ) print ( 'b is' , b ) id(a) is 1865706560 id(b) is 1865706560 a is 1 b is 1 b = 3 print ( 'id(a) is ' , id ( a ) ) print ( 'id(b) is ' , id ( b ) ) print ( 'a is' , a ) print ( 'b is' , b ) id(a) is 1865706560 id(b) is 1865706624 a is 1 b is 3 对于 复杂的数据结构 ,比如list,使用 hot =

C 语言编程 — 内存管理

一笑奈何 提交于 2020-04-06 08:46:38
目录 文章目录 目录 前文列表 堆、栈 内存管理 动态分配内存 重新调整内存的大小和释放内存 前文列表 《 程序编译流程与 GCC 编译器 》 《 C 语言编程 — 基本语法 》 《 C 语言编程 — 基本数据类型 》 《 C 语言编程 — 变量与常量 》 《 C 语言编程 — 运算符 》 《 C 语言编程 — 逻辑控制语句 》 《 C 语言编程 — 函数 》 《 C 语言编程 — 高级数据类型 — 指针 》 《 C 语言编程 — 高级数据类型 — 数组 》 《 C 语言编程 — 高级数据类型 — 枚举 》 《 C 语言编程 — 高级数据类型 — 结构体与位域 》 《 C 语言编程 — 高级数据类型 — 共用体 》 《 C 语言编程 — 数据类型的别名 》 《 C 语言编程 — 数据类型转换 》 《 C 语言编程 — 预处理器指令 》 《 C 语言编程 — 异常处理 》 《 C 语言编程 — 输入/输出与文件操作 》 堆、栈 内存管理 C 语言为内存的分配和管理提供了几个标准函数。这些函数可以在 stdlib.h 头文件中找到。 注: void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过强制类型转换为任何其它类型的指针。 动态分配内存 # include <stdio.h> # include <stdlib.h> # include <string