mysql_contents_将MySQLhelpcontents的内容有层次的输出方法推荐

经常会遇到这种情况,在一个不能上网的环境通过MySQL客户端登录数据库,想执行一个操作,却忘了操作的具体语法,各种不方便。

其实,MySQL数据库内置了帮助文档,通过help contents即可查看。

如下所示:

20160324144647241.png

可见,该文档涵盖了数据库操作的大部分主题。

文档分为以上几大类,每个大类又包括更小粒度的类,类最后有具体的topic组成。

那么这之间的层级关系如何呢?

昨天想执行一个操作

mysql> backup table emp to '/tmp/mysqlbackup';

因为这个backup操作以前没有使用过,准备用MySQL自带的帮助文档来查看具体的用法。本来这个命令所属的类别就有点模糊,譬如Administration和Utility都有可能。最后找了一通,还是没有找到。

想了想,这样查看帮助文档确实没有太大的效率,如果知道这之间的层级关系就好办了。

于是,动手写了个脚本,可直观的显示帮助文档中大类与小类,小类与topic之间的关系。

具体如下:

#!/bin/bash

#所有操作都是在/tmp/test中操作,因为中间新建了很多临时文件,方便后续的删除。

mkdir /tmp/test

#获取上图的内容重定向到/tmp/test/test.txt文件中

mysql -uroot -p123456 -e "help contents " > /tmp/test/test.txt

#定义输出的格式,\t输出tab,\b相当于backspace一个空格,参考了tree命令的输出方式。

format="|\t\b"

#删除第一行和最后一行

sed -i '1d;$d' /tmp/test/test.txt

cd /tmp/test

#引入number的作用在于后续格式的输出

number=0

#后续用了递归调用,这里定义的是函数

function recursive(){

filename=$1

number=$[$number+1]

while read line

do

#name要做为文件名,譬如Account Management,利用tr函数是去掉字符中间的空格

name=`echo $line|tr -d [:blank:]`

#输出每个分类中的内容,可能是topic,可能是categories

mysql -uroot -p123456 -e "help $line" > $name

#取输出文件的第一行的内容,如果是具体的topic,则第一行的内容为:Name: 'ALTER USER',不然就还是categories,需要递归调用

firstline=`head -1 $name`

#整个逻辑比较复杂的有两类,一个是Numeric Functions,另一个是PLUGINS。先说PLUGINS,一般对于一个具体的topic,它的输出类似于Name: 'ALTER USER',而PLUGINS

#对应的输出却是Name: 'SHOW PLUGINS',所以下面的判断语句多了一个"$firstline" = "Name: 'SHOW PLUGINS'",针对的即是PLUGINS。另一比较复杂的是Numeric Functions

#它下面的topic有除号“/”,而这基本上是不能作为文件名的。所以在下面的判断逻辑中,如果遇到Numeric Functions,就直接打印出该类中的topic,而不进行Name: 'ALTER USER'这样的判断

if [ "$firstline" = "Name: '$line'" -o "$firstline" = "Name: 'SHOW PLUGINS'" ];then

for i in `seq $[$number-1]`

do

echo -ne $format

done

echo "├── $line"

else

#如果不是topic,则代表是categories,可递归进行判断,唯一的例外就是Numeric Functions

#下面的echo "├── $line"打印出的是categories的名字

for i in `seq $[$number-1]`

do

echo -ne $format

done

echo "├── $line"

#遇到Numeric Functions,就直接打印出该类中的topic

if [ "$line" = "Numeric Functions" ];then

sed -i '1d;$d' $name

while read functions

do

for i in `seq $number`

do

echo -ne $format

done

echo "├── $functions"

done < $name

else

#其它的categories,递归调用该函数进行判断。

sed -i '1d;$d' $name

recursive $name

number=$[$number-1]

fi

fi

done < $filename

}

#主函数

recursive /tmp/test/test.txt

#处理完毕,删除文件夹

rm -rf /tmp/test

因MySQL客户端登录数据库的时候,直接指定了密码,如果直接执行的话,会输出很多“Warning: Using a password on the command line interface can be insecure.”,

可重定向到一个文件

# sh 2.sh > 1.txt

最后文件中的结果如下:

├── Account Management

| ├── ALTER USER

| ├── CREATE USER

| ├── DROP USER

| ├── GRANT

| ├── RENAME USER

| ├── REVOKE

| ├── SET PASSWORD

├── Administration

| ├── BINLOG

| ├── CACHE INDEX

| ├── FLUSH

| ├── FLUSH QUERY CACHE

| ├── HELP COMMAND

| ├── KILL

| ├── LOAD INDEX

| ├── RESET

| ├── SET

| ├── SHOW

| ├── SHOW AUTHORS

| ├── SHOW BINARY LOGS

| ├── SHOW BINLOG EVENTS

| ├── SHOW CHARACTER SET

| ├── SHOW COLLATION

| ├── SHOW COLUMNS

| ├── SHOW CONTRIBUTORS

| ├── SHOW CREATE DATABASE

| ├── SHOW CREATE EVENT

| ├── SHOW CREATE FUNCTION

| ├── SHOW CREATE PROCEDURE

| ├── SHOW CREATE TABLE

| ├── SHOW CREATE TRIGGER

| ├── SHOW CREATE VIEW

| ├── SHOW DATABASES

| ├── SHOW ENGINE

| ├── SHOW ENGINES

| ├── SHOW ERRORS

| ├── SHOW EVENTS

| ├── SHOW FUNCTION CODE

| ├── SHOW FUNCTION STATUS

| ├── SHOW GRANTS

| ├── SHOW INDEX

| ├── SHOW MASTER STATUS

| ├── SHOW OPEN TABLES

| ├── SHOW PLUGINS

| ├── SHOW PRIVILEGES

| ├── SHOW PROCEDURE CODE

| ├── SHOW PROCEDURE STATUS

| ├── SHOW PROCESSLIST

| ├── SHOW PROFILE

| ├── SHOW PROFILES

| ├── SHOW RELAYLOG EVENTS

| ├── SHOW SLAVE HOSTS

| ├── SHOW SLAVE STATUS

| ├── SHOW STATUS

| ├── SHOW TABLE STATUS

| ├── SHOW TABLES

| ├── SHOW TRIGGERS

| ├── SHOW VARIABLES

| ├── SHOW WARNINGS

├── Compound Statements

| ├── BEGIN END

| ├── CASE STATEMENT

| ├── CLOSE

| ├── DECLARE CONDITION

| ├── DECLARE CURSOR

| ├── DECLARE HANDLER

| ├── DECLARE VARIABLE

| ├── FETCH

| ├── GET DIAGNOSTICS

| ├── IF STATEMENT

| ├── ITERATE

| ├── LABELS

| ├── LEAVE

| ├── LOOP

| ├── OPEN

| ├── REPEAT LOOP

| ├── RESIGNAL

| ├── RETURN

| ├── SIGNAL

| ├── WHILE

├── Data Definition

| ├── ALTER DATABASE

| ├── ALTER EVENT

| ├── ALTER FUNCTION

| ├── ALTER LOGFILE GROUP

| ├── ALTER PROCEDURE

| ├── ALTER SERVER

| ├── ALTER TABLE

| ├── ALTER TABLESPACE

| ├── ALTER VIEW

| ├── CONSTRAINT

| ├── CREATE DATABASE

| ├── CREATE EVENT

| ├── CREATE FUNCTION

| ├── CREATE INDEX

| ├── CREATE LOGFILE GROUP

| ├── CREATE PROCEDURE

| ├── CREATE SERVER

| ├── CREATE TABLE

| ├── CREATE TABLESPACE

| ├── CREATE TRIGGER

| ├── CREATE VIEW

| ├── DROP DATABASE

| ├── DROP EVENT

| ├── DROP FUNCTION

| ├── DROP INDEX

| ├── DROP PROCEDURE

| ├── DROP SERVER

| ├── DROP TABLE

| ├── DROP TABLESPACE

| ├── DROP TRIGGER

| ├── DROP VIEW

| ├── RENAME TABLE

| ├── TRUNCATE TABLE

├── Data Manipulation

| ├── CALL

| ├── DELETE

| ├── DO

| ├── DUAL

| ├── HANDLER

| ├── INSERT

| ├── INSERT DELAYED

| ├── INSERT SELECT

| ├── JOIN

| ├── LOAD DATA

| ├── LOAD XML

| ├── REPLACE

| ├── SELECT

| ├── UNION

| ├── UPDATE

├── Data Types

| ├── AUTO_INCREMENT

| ├── BIGINT

| ├── BINARY

| ├── BIT

| ├── BLOB

| ├── BLOB DATA TYPE

| ├── BOOLEAN

| ├── CHAR

| ├── CHAR BYTE

| ├── DATE

| ├── DATETIME

| ├── DEC

| ├── DECIMAL

| ├── DOUBLE

| ├── DOUBLE PRECISION

| ├── ENUM

| ├── FLOAT

| ├── INT

| ├── INTEGER

| ├── LONGBLOB

| ├── LONGTEXT

| ├── MEDIUMBLOB

| ├── MEDIUMINT

| ├── MEDIUMTEXT

| ├── SET DATA TYPE

| ├── SMALLINT

| ├── TEXT

| ├── TIME

| ├── TIMESTAMP

| ├── TINYBLOB

| ├── TINYINT

| ├── TINYTEXT

| ├── VARBINARY

| ├── VARCHAR

| ├── YEAR DATA TYPE

├── Functions

| ├── Bit Functions

| | ├── &

| | ├── <<

| | ├── >>

| | ├── BIT_COUNT

| | ├── ^

| | ├── |

| | ├── ~

| ├── Comparison operators

| | ├── !=

| | ├── <

| | ├── <=

| | ├── <=>

| | ├── =

| | ├── >

| | ├── >=

| | ├── BETWEEN AND

| | ├── COALESCE

| | ├── GREATEST

| | ├── IN

| | ├── INTERVAL

| | ├── IS

| | ├── IS NOT

| | ├── IS NOT NULL

| | ├── IS NULL

| | ├── ISNULL

| | ├── LEAST

| | ├── NOT BETWEEN

| | ├── NOT IN

| ├── Control flow functions

| | ├── CASE OPERATOR

| | ├── IF FUNCTION

| | ├── IFNULL

| | ├── NULLIF

| ├── Date and Time Functions

| | ├── ADDDATE

| | ├── ADDTIME

| | ├── CONVERT_TZ

| | ├── CURDATE

| | ├── CURRENT_DATE

| | ├── CURRENT_TIME

| | ├── CURRENT_TIMESTAMP

| | ├── CURTIME

| | ├── DATE FUNCTION

| | ├── DATEDIFF

| | ├── DATE_ADD

| | ├── DATE_FORMAT

| | ├── DATE_SUB

| | ├── DAY

| | ├── DAYNAME

| | ├── DAYOFMONTH

| | ├── DAYOFWEEK

| | ├── DAYOFYEAR

| | ├── EXTRACT

| | ├── FROM_DAYS

| | ├── FROM_UNIXTIME

| | ├── GET_FORMAT

| | ├── HOUR

| | ├── LAST_DAY

| | ├── LOCALTIME

| | ├── LOCALTIMESTAMP

| | ├── MAKEDATE

| | ├── MAKETIME

| | ├── MICROSECOND

| | ├── MINUTE

| | ├── MONTH

| | ├── MONTHNAME

| | ├── NOW

| | ├── PERIOD_ADD

| | ├── PERIOD_DIFF

| | ├── QUARTER

| | ├── SECOND

| | ├── SEC_TO_TIME

| | ├── STR_TO_DATE

| | ├── SUBDATE

| | ├── SUBTIME

| | ├── SYSDATE

| | ├── TIME FUNCTION

| | ├── TIMEDIFF

| | ├── TIMESTAMP FUNCTION

| | ├── TIMESTAMPADD

| | ├── TIMESTAMPDIFF

| | ├── TIME_FORMAT

| | ├── TIME_TO_SEC

| | ├── TO_DAYS

| | ├── TO_SECONDS

| | ├── UNIX_TIMESTAMP

| | ├── UTC_DATE

| | ├── UTC_TIME

| | ├── UTC_TIMESTAMP

| | ├── WEEK

| | ├── WEEKDAY

| | ├── WEEKOFYEAR

| | ├── YEAR

| | ├── YEARWEEK

| ├── Encryption Functions

| | ├── AES_DECRYPT

| | ├── AES_ENCRYPT

| | ├── COMPRESS

| | ├── DECODE

| | ├── DES_DECRYPT

| | ├── DES_ENCRYPT

| | ├── ENCODE

| | ├── ENCRYPT

| | ├── MD5

| | ├── OLD_PASSWORD

| | ├── PASSWORD

| | ├── RANDOM_BYTES

| | ├── SHA1

| | ├── SHA2

| | ├── UNCOMPRESS

| | ├── UNCOMPRESSED_LENGTH

| | ├── VALIDATE_PASSWORD_STRENGTH

| ├── Information Functions

| | ├── BENCHMARK

| | ├── CHARSET

| | ├── COERCIBILITY

| | ├── COLLATION

| | ├── CONNECTION_ID

| | ├── CURRENT_USER

| | ├── DATABASE

| | ├── FOUND_ROWS

| | ├── LAST_INSERT_ID

| | ├── ROW_COUNT

| | ├── SCHEMA

| | ├── SESSION_USER

| | ├── SYSTEM_USER

| | ├── USER

| | ├── VERSION

| ├── Logical operators

| | ├── !

| | ├── AND

| | ├── ASSIGN-EQUAL

| | ├── ASSIGN-VALUE

| | ├── OR

| | ├── XOR

| ├── Miscellaneous Functions

| | ├── DEFAULT

| | ├── GET_LOCK

| | ├── INET6_ATON

| | ├── INET6_NTOA

| | ├── INET_ATON

| | ├── INET_NTOA

| | ├── IS_FREE_LOCK

| | ├── IS_IPV4

| | ├── IS_IPV4_COMPAT

| | ├── IS_IPV4_MAPPED

| | ├── IS_IPV6

| | ├── IS_USED_LOCK

| | ├── MASTER_POS_WAIT

| | ├── NAME_CONST

| | ├── RELEASE_LOCK

| | ├── SLEEP

| | ├── UUID

| | ├── UUID_SHORT

| | ├── VALUES

| ├── Numeric Functions

| | ├── %

| | ├── *

| | ├── +

| | ├── - BINARY

| | ├── - UNARY

| | ├── /

| | ├── ABS

| | ├── ACOS

| | ├── ASIN

| | ├── ATAN

| | ├── ATAN2

| | ├── CEIL

| | ├── CEILING

| | ├── CONV

| | ├── COS

| | ├── COT

| | ├── CRC32

| | ├── DEGREES

| | ├── DIV

| | ├── EXP

| | ├── FLOOR

| | ├── LN

| | ├── LOG

| | ├── LOG10

| | ├── LOG2

| | ├── MOD

| | ├── PI

| | ├── POW

| | ├── POWER

| | ├── RADIANS

| | ├── RAND

| | ├── ROUND

| | ├── SIGN

| | ├── SIN

| | ├── SQRT

| | ├── TAN

| | ├── TRUNCATE

| ├── String Functions

| | ├── ASCII

| | ├── BIN

| | ├── BINARY OPERATOR

| | ├── BIT_LENGTH

| | ├── CAST

| | ├── CHAR FUNCTION

| | ├── CHARACTER_LENGTH

| | ├── CHAR_LENGTH

| | ├── CONCAT

| | ├── CONCAT_WS

| | ├── CONVERT

| | ├── ELT

| | ├── EXPORT_SET

| | ├── EXTRACTVALUE

| | ├── FIELD

| | ├── FIND_IN_SET

| | ├── FORMAT

| | ├── FROM_BASE64()

| | ├── HEX

| | ├── INSERT FUNCTION

| | ├── INSTR

| | ├── LCASE

| | ├── LEFT

| | ├── LENGTH

| | ├── LIKE

| | ├── LOAD_FILE

| | ├── LOCATE

| | ├── LOWER

| | ├── LPAD

| | ├── LTRIM

| | ├── MAKE_SET

| | ├── MATCH AGAINST

| | ├── MID

| | ├── NOT LIKE

| | ├── NOT REGEXP

| | ├── OCT

| | ├── OCTET_LENGTH

| | ├── ORD

| | ├── POSITION

| | ├── QUOTE

| | ├── REGEXP

| | ├── REPEAT FUNCTION

| | ├── REPLACE FUNCTION

| | ├── REVERSE

| | ├── RIGHT

| | ├── RPAD

| | ├── RTRIM

| | ├── SOUNDEX

| | ├── SOUNDS LIKE

| | ├── SPACE

| | ├── STRCMP

| | ├── SUBSTR

| | ├── SUBSTRING

| | ├── SUBSTRING_INDEX

| | ├── TO_BASE64()

| | ├── TRIM

| | ├── UCASE

| | ├── UNHEX

| | ├── UPDATEXML

| | ├── UPPER

| | ├── WEIGHT_STRING

├── Functions and Modifiers for Use with GROUP BY

| ├── AVG

| ├── BIT_AND

| ├── BIT_OR

| ├── BIT_XOR

| ├── COUNT

| ├── COUNT DISTINCT

| ├── GROUP_CONCAT

| ├── MAX

| ├── MIN

| ├── STD

| ├── STDDEV

| ├── STDDEV_POP

| ├── STDDEV_SAMP

| ├── SUM

| ├── VARIANCE

| ├── VAR_POP

| ├── VAR_SAMP

├── Geographic Features

| ├── GEOMETRY

| ├── GEOMETRY HIERARCHY

| ├── SPATIAL

| ├── Geometry constructors

| | ├── GEOMETRYCOLLECTION

| | ├── LINESTRING

| | ├── MULTILINESTRING

| | ├── MULTIPOINT

| | ├── MULTIPOLYGON

| | ├── POINT

| | ├── POLYGON

| ├── Geometry properties

| | ├── DIMENSION

| | ├── ENVELOPE

| | ├── GEOMETRYTYPE

| | ├── ISEMPTY

| | ├── ISSIMPLE

| | ├── SRID

| | ├── ST_DIMENSION

| | ├── ST_ENVELOPE

| | ├── ST_GEOMETRYTYPE

| | ├── ST_ISEMPTY

| | ├── ST_ISSIMPLE

| | ├── ST_SRID

| ├── Geometry relations

| | ├── CONTAINS

| | ├── CROSSES

| | ├── DISJOINT

| | ├── EQUALS

| | ├── INTERSECTS

| | ├── OVERLAPS

| | ├── ST_CONTAINS

| | ├── ST_CROSSES

| | ├── ST_DISJOINT

| | ├── ST_DISTANCE

| | ├── ST_EQUALS

| | ├── ST_INTERSECTS

| | ├── ST_OVERLAPS

| | ├── ST_TOUCHES

| | ├── ST_WITHIN

| | ├── TOUCHES

| | ├── WITHIN

| ├── LineString properties

| | ├── ENDPOINT

| | ├── GLENGTH

| | ├── ISCLOSED

| | ├── NUMPOINTS

| | ├── POINTN

| | ├── STARTPOINT

| | ├── ST_ENDPOINT

| | ├── ST_ISCLOSED

| | ├── ST_NUMPOINTS

| | ├── ST_POINTN

| | ├── ST_STARTPOINT

| ├── MBR

| | ├── ASYMMETRIC_DECRYPT

| | ├── ASYMMETRIC_DERIVE

| | ├── ASYMMETRIC_ENCRYPT

| | ├── ASYMMETRIC_SIGN

| | ├── ASYMMETRIC_VERIFY

| | ├── CREATE_ASYMMETRIC_PRIV_KEY

| | ├── CREATE_ASYMMETRIC_PUB_KEY

| | ├── CREATE_DH_PARAMETERS

| | ├── CREATE_DIGEST

| | ├── GTID_SUBSET

| | ├── GTID_SUBTRACT

| | ├── MBR DEFINITION

| | ├── MBRCONTAINS

| | ├── MBRDISJOINT

| | ├── MBREQUAL

| | ├── MBRINTERSECTS

| | ├── MBROVERLAPS

| | ├── MBRTOUCHES

| | ├── MBRWITHIN

| | ├── SQL_THREAD_WAIT_AFTER_GTIDS

| | ├── WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS

| ├── Point properties

| | ├── ST_X

| | ├── ST_Y

| | ├── X

| | ├── Y

| ├── Polygon properties

| | ├── AREA

| | ├── CENTROID

| | ├── EXTERIORRING

| | ├── INTERIORRINGN

| | ├── NUMINTERIORRINGS

| | ├── ST_AREA

| | ├── ST_CENTROID

| | ├── ST_EXTERIORRING

| | ├── ST_INTERIORRINGN

| | ├── ST_NUMINTERIORRINGS

| ├── WKB

| | ├── ASBINARY

| | ├── ASTEXT

| | ├── GEOMCOLLFROMWKB

| | ├── GEOMFROMWKB

| | ├── LINEFROMWKB

| | ├── MLINEFROMWKB

| | ├── MPOINTFROMWKB

| | ├── MPOLYFROMWKB

| | ├── POINTFROMWKB

| | ├── POLYFROMWKB

| | ├── ST_ASBINARY

| | ├── ST_ASTEXT

| | ├── ST_GEOMCOLLFROMWKB

| | ├── ST_GEOMFROMWKB

| | ├── ST_LINEFROMWKB

| | ├── ST_POINTFROMWKB

| | ├── ST_POLYFROMWKB

| ├── WKT

| | ├── GEOMCOLLFROMTEXT

| | ├── GEOMFROMTEXT

| | ├── LINEFROMTEXT

| | ├── MLINEFROMTEXT

| | ├── MPOINTFROMTEXT

| | ├── MPOLYFROMTEXT

| | ├── POINTFROMTEXT

| | ├── POLYFROMTEXT

| | ├── ST_GEOMCOLLFROMTEXT

| | ├── ST_GEOMFROMTEXT

| | ├── ST_LINEFROMTEXT

| | ├── ST_POINTFROMTEXT

| | ├── ST_POLYFROMTEXT

| | ├── WKT DEFINITION

├── Help Metadata

| ├── HELP_DATE

| ├── HELP_VERSION

├── Language Structure

├── Plugins

├── Procedures

├── Storage Engines

├── Table Maintenance

| ├── ANALYZE TABLE

| ├── CHECK TABLE

| ├── CHECKSUM TABLE

| ├── OPTIMIZE TABLE

| ├── REPAIR TABLE

├── Transactions

| ├── CHANGE MASTER TO

| ├── DEALLOCATE PREPARE

| ├── EXECUTE STATEMENT

| ├── ISOLATION

| ├── LOCK

| ├── PREPARE

| ├── PURGE BINARY LOGS

| ├── RESET MASTER

| ├── RESET SLAVE

| ├── SAVEPOINT

| ├── SET GLOBAL SQL_SLAVE_SKIP_COUNTER

| ├── SET SQL_LOG_BIN

| ├── START SLAVE

| ├── START TRANSACTION

| ├── STOP SLAVE

| ├── XA

├── User-Defined Functions

| ├── CREATE FUNCTION UDF

| ├── DROP FUNCTION UDF

├── Utility

| ├── EXPLAIN

| ├── HELP STATEMENT

| ├── USE

总结:

整个脚本在写的过程有两点比较有意思。

1. 函数递归操作,以前没怎么使用Shell进行函数的递归操作。

2. 借鉴tree的输出格式,对结果进行格式化输出。

思路如下:首先定义一个number为0,每次进入一次recursive函数,都会把当前的number加1,如果只是这样的话,那number值将一直增长了,所以在上述脚本else调用recursive函数部分,会在其后执行number=$[$number-1],类似于恢复到上一层目录下。

以上这篇将MySQL help contents的内容有层次的输出方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点开那些优秀的硕博士们的朋友圈,他们都有这些特点!

全世界只有3.14 % 的人关注了爆炸吧知识很多同学都会有这种感觉&#xff0c;读了硕士博士后&#xff0c;兴趣会突然间发生很大变化&#xff0c;发朋友圈也会不一样了。例如&#xff0c;合格的学术研究者&#xff0c;要快速、全面的获取各种最新文献和学界动态&#xff1b;还要持…

java foreach 跳过本次循环_【Java】对foreach循环的思考

阿里java开发手册已经发表&#xff0c;很多都值得认真研究思考&#xff0c;看到零度的思考题&#xff0c;没忍住研究了一下。在这里插入图片描述首先&#xff0c;看一下给出的反例的执行结果。如果是"1"&#xff0c;最后list中的元素为["2"]如果把"1&…

地球上这10个奇幻景观,带你踏入外太空

全世界只有3.14 % 的人关注了爆炸吧知识大蓝洞大蓝洞是灯塔礁的一部分&#xff0c;位于洪都拉斯伯利兹城陆地大约100公里之遥&#xff0c;是一个较大的完美环状海洋深洞&#xff0c;是当今世界最吸引人的潜水地点之一。305米的口径&#xff0c;123米的洞深&#xff0c;洞口呈现…

OSChina 周六乱弹 —— 有人骂你神经病怎么办?

2019独角兽企业重金招聘Python工程师标准>>> 周六了&#xff0c;大家有没有在认真加班呢&#xff1f;其实咱们程序员的生活真的不容易 熊大信了熊二的话&#xff1a;程序员的人生 码代码不容易&#xff0c;咱们还是去抢银行吧 sunny_chan&#xff1a;一天老师让同学…

手把手教你学Dapr - 6. 发布订阅

介绍发布/订阅模式允许微服务使用消息相互通信。生产者或发布者在不知道哪个应用程序将接收它们的情况下向主题发送消息。这涉及将它们写入输入通道。同样&#xff0c;消费者或订阅者订阅该主题并接收其消息&#xff0c;而不知道是什么服务产生了这些消息。这涉及从输出通道接收…

直男的浪漫有多可怕?

1 你不说估计没人知道&#xff08;via.信箱说i&#xff09;▼2 举报&#xff0c;此处有个疑似小偷的人&#xff01;&#xff08;via&#xff1a;不知姓名的C&#xff09;▼3 世界上最互相信任的人了吧&#xff1f;▼4 你看我这个垫肩是不是很不错&#xff01;&#xff08;素…

WPF 透明窗口在桌面上放虫子。。。

抖音上偶然看到这个&#xff0c;咱也想来一个&#xff0c;看看效果&#xff1a;实现很简单&#xff0c;一个透明窗口&#xff0c;一个gif图片&#xff0c;不显示任务栏&#xff0c;再加上鼠标穿透&#xff0c;就ok了了看看代码&#xff1a;Mainwindow.xaml:<Window x:Class&…

“凡尔赛文学”疯狂刷屏!数学家们也拼命“装”了起来,哈哈哈哈哈

全世界只有3.14 % 的人关注了爆炸吧知识凡尔赛文学与数学结合起来完美无缺大家好&#xff0c;超模君昨天在写稿时&#xff0c;表妹过来告诉我&#xff1a;“表哥你的科普文章都out了&#xff01;现在凡尔赛文学才是主流&#xff01;”超模君很疑惑&#xff0c;凡尔赛文学的画风…

.NET 6新特性试用 | 可空引用类型

前言在查看《隐式using指令》功能时&#xff0c;我们在csproj中发现这样一个属性&#xff1a;那么&#xff0c;Nullable到底是干嘛的&#xff1f;可为空上下文严格来说&#xff0c;这不是新特性&#xff0c;而是C# 8.0引入的特性之一。该特性用于指示引用类型是否接受null值:只…

Android之Base64

Base64介绍 Base64是一种基于64个可打印字符来表示二进制数据的表示方法,从本质上看Base64编码就是将三字节转四字节。如将字符串“Man”用Base64编码。 如果数据的长度不是3的整数倍

这是不是帮女朋友拍照时的你?哈哈哈哈

1 就跟我房东说&#xff1a;现在打工人压力真大一样▼2 原来&#xff0c;连打工人都不配了吗&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 原来这才是家大叶大▼4 给女朋友拍照时的你&#xff01;&#xff08;via.刘一杭三三 &#xff09;▼5 当法…

linux slub分配器浅析

在《linux内存管理浅析》中提到内核管理自己使用的内存时&#xff0c;使用了SLAB对象池。SLAB确实是比较复杂&#xff0c;所以一直以来都没有深入看一看。不过现在&#xff0c;linux内核中&#xff0c;SLAB已经被它的简化版--SLUB所代替。最近抽时间看了一下SLUB的代码&#xf…

openfire 插件开发例子

2019独角兽企业重金招聘Python工程师标准>>> 好久都没有写东西了。今天总结一下之前开发的一些openfire插件。 这次的插件需要提供一个HTTP的接口。通过HTTP来对openfire做一些操作。 插件的目录结构&#xff1a;项目名称“exampleplugin" src/main/javaorg/ji…

WPF实现一个彩虹按钮

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织玩玩彩虹文字&#xff0c;这次用 LinearGradientBrush 并且制作成按钮&#xff0c;虽然没技术含量反而有些实用&#xff0c;这就是返璞归真吗。首先来回忆下 LinearGradientBrush 的用法。LinearG…

设计模式的分类和六大设计原则

学习设计模式我是大学研究《java与模式这本书》1024页&#xff0c;很多没有看懂&#xff0c;并且没有总结起来&#xff0c;这次一定要把设计原则和设计模式总结清楚。 设计模式的分类 设计模式分为三大类&#xff1a;创建型模式&#xff0c;共五种&#xff1a;工厂方法模式、…

nvidia控制面板点了没反应win7_为什么没有nvidia控制面板_win7没有nvidia控制面板怎么找回-系统城...

2016-10-31 16:15:46  浏览量&#xff1a;30668如果电脑显卡出现问题会导致屏幕画面不清楚&#xff0c;这时候win7系统自带nvidia控制面板就派上用场了。它能够对显卡进行设置&#xff0c;提升显卡功能&#xff0c;但有用户说win7怎么没有nvidia控制面板&#xff1f;找很久也…

公交车座椅上有个洞,竟是为了…很多人都不知道

全世界只有3.14 % 的人关注了爆炸吧知识坐公交车的时候你有没有发现公交车的座椅上通常来说中间都会有个洞洞的大小基本上刚好够一个手指头穿过那么这个洞到底有什么用呢&#xff1f;小编特意问了一圈同事们的回答真的脑洞大开有的说洞口刚好可以穿过手指是不是乘客无聊的时候可…

pythonresponse对象的属性_Scrapy中response属性以及内容提取

PythonPython开发Python语言Scrapy中response属性以及内容提取一.属性url &#xff1a;HTTP响应的url地址,str类型status&#xff1a;HTTP响应的状态码, int类型headers &#xff1a;HTTP响应的头部, 类字典类型, 可以调用get或者getlist方法对其进行访问body&#xff1a;HTTP响…

【转】学习apicloud和IOS之间的模块化使用

最近公司有使用APICloud发开的需求&#xff0c;需要我这边提供一些模块包得封装。因为没有也是刚接触APICloud&#xff0c;所以也就在看官方文档 。下面讲一讲我再使用过程中得一点点东西。 首先&#xff0c;下载官方SDK,下载最新版本的模块开发SDK&#xff0c;找到里面的Modul…

豪横!学术圈“造假之王”,200余篇论文有183篇论文被撤稿

全世界只有3.14 % 的人关注了爆炸吧知识导读&#xff1a;学术造假已经不再是什么新鲜话题&#xff0c;历史上的学术骗子也是数不胜数。其中骗子之王更是达到前无古人的地步&#xff0c;发表论文数212篇&#xff0c;因涉嫌造假而遭到撤稿的就达到了183篇之多。然而打假的过程并不…