45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样将MySQL help contents的内容有层次输出?

怎么样将MySQL help contents的内容有层次输出?

2016-04-08 06:34:46 来源:www.45fan.com 【

怎么样将MySQL help contents的内容有层次输出?

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

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

如下所示:

怎么样将MySQL help contents的内容有层次输出?

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

文档分为以上几大类,每个大类又包括更小粒度的类,类最后有具体的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.45fan.com/a/question/45344.html
Tags: mysql help contents
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部