Linux Shell函数简介

1.定义函数

语法:
[ function ] funname [()]
{
action;
[return int;]
}
说明:

  1. 可以带function fun() 定义,也可以直接fun() 定义,不带任何参数,function关键字和()必须有其中一个。
  2. 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)。

继续阅读

mysql生成随机字符串

set global log_bin_trust_function_creators = 1; 
DROP FUNCTION IF EXISTS rand_string;
DELIMITER $$
CREATE FUNCTION rand_string(n INT)
RETURNS VARCHAR(255)
BEGIN
    DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    DECLARE return_str varchar(255) DEFAULT '';
    DECLARE i INT DEFAULT 0;
    WHILE i < n DO
        SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
        SET i = i +1;
    END WHILE;
    RETURN return_str;
END $$
DELIMITER ;
select rand_string(32);

经测试,函数创建后与当前数据库绑定,下面语句可以查看函数相关信息。

SHOW FUNCTION STATUS WHERE Db='database_name';

 

linux shell数组操作

  1. 定义数组
    [chengmo@centos5 ~]$ a=(1 2 3 4 5)
    [chengmo@centos5 ~]$ echo $a
    1
    [chengmo@centos5 ~]$ a=([1]=aaa [2]=bbb [c]=ccc)
    [chengmo@centos5 ~]$ echo ${a[c]}
    ccc
    [chengmo@centos5 ~]$ b[1]=100
    [chengmo@centos5 ~]$ echo ${b[1]}
    100
    [chengmo@centos5 ~]$ a="one two three"  # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身

    继续阅读