怎么样拿MySQL help contents的情有层次之出口

时常会赶上这种状况,在一个无能够上网的条件经过MySQL客户端登录数据库,想实行一个操作,却忘记了操作的实际语法,各种不便民。

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

一般来说所示:

图片 1

看得出,该文档涵盖了数据库操作的绝大多数主题。

文档分为以上几乎老类,每个大接近以包括再粗粒度的近乎,类最后来具体的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],类似于回复到直达一样交汇目录下。

网站地图xml地图