10月 15

Shell使用关联数组

Shell数组默认以下标访问,因此键名都是整数。如果想使用字符串做为键名,可以通过关联数组来处理。 使用关联数组前,需要显示声明 : declare -A arrayName,示例代码如下。 执行结果

10月 09

Shell脚本实现csv转vcf

csv转vCard格式,用于通讯录批量导入手机。 csv字段如下: csv2vcf.sh代码:  

7月 27

Shell随机数及字符串翻转

完美世界运维开发的一道笔试题,大概意思是0到9中随机取6个数,然后翻转输出。之前写过一个随机生成root密码的脚本,无奈时间长了忘记了。这里总结一下shell中随机数的生成方法。 时间戳 date +%s 获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数。如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程 … Continue reading

3月 12

Unicode转汉字

Unicode编码的 “\u5730\u65b9\u7ad9”,用iconv转换为汉字,在不知道-f选项的情况下可以全都试一遍。 结果如下: 可以看到C99和JAVA返回了正确结果。 关于C99和JAVA 关于iconv的能力 It provides support for the encodings: … Full Unic … Continue reading

3月 04

shell脚本修改服务器root密码

修改服务器root密码脚本,借助配置管理工具可以批量执行。随机生成32为的包含数字,大小写字母及特殊字符的root密码,干掉弱口令。[1] 另外可以用命令生成随机字符串,但是速度较慢 1、生成随机数 echo $RANDOM 2、生成随机字符串 cat /dev/urandom | strings -n C | head -n L cat … Continue reading

8月 31

Shell模拟多线程

shell不能实现多线程,但是可以通过限制几乎同时放入后台执行的进程数量来模拟多线程,从而达到在提高脚本执行效率的同时又不明显增加负载的作用。 Ping脚本的多线程实现 ip.txt中有9个ip,9个线程,调试模式执行结果 执行时间对比 可以看到线程数量正好合适时执行速度比较快。 CMDB内外网错误修正脚本多线程实现 这是工作中的一个实例 … Continue reading

1月 29

shell脚本单独打包子文件夹

用于备份,比如D盘project目录下有很多个独立的项目,如果直接上传到网盘,文件数量可能会超过限制,上传速度也慢,其实也没有必要,在网盘上浏览单个文件也没有意义。 但是,如果将整个project目录压缩,压缩包会比较大,想看单个项目时又需要将整个project压缩包下载下来,速度会比较慢。百度网盘的在线解压功能也有些鸡肋,貌似只能解压单 … Continue reading

8月 06

shell中处理带空格的文件名

想用xxd批量处理棋谱,shell脚本却总是出错,提示模糊的重定向。直到发现英文命名的wgs棋谱可以正常处理,才意识到是QQ围棋自动保存棋谱文件名中存在空格导致的问题。 解决方法是将变量放在引号之间: 注释掉的部分是尝试用数组解决的代码。最后发现之间处理更方便。顺便记录一下,访问数组的方式 ${arry[键值]}。 参见:http://w … Continue reading