7月 27

Shell随机数及字符串翻转

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

8月 31

Shell模拟多线程

UPDATE 20180605: 此种方式存在丢任务的情况,用 parallel 命令做多线程更好更简单 shell不能实现多线程,但是可以通过限制几乎同时放入后台执行的进程数量来模拟多线程,从而达到在提高脚本执行效率的同时又不明显增加负载的作用。 Ping脚本的多线程实现 #!/bin/bash set -x #开启调试模式 # Usa … Continue reading

1月 29

shell脚本单独打包子文件夹

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

8月 06

shell中处理带空格的文件名

想用xxd批量处理棋谱,shell脚本却总是出错,提示模糊的重定向。直到发现英文命名的wgs棋谱可以正常处理,才意识到是QQ围棋自动保存棋谱文件名中存在空格导致的问题。 解决方法是将变量放在引号之间: #!/bin/bash for file in ./*.wgs do xxd -g 1 -l 122 $"$file" > $"$f … Continue reading