Shell使用关联数组
Shell数组默认以下标访问,因此键名都是整数。如果想使用字符串做为键名,可以通过关联数组来处理。 使用关联数组前,需要显示声明 : declare -A arrayName,示例代码如下。 #!/bin/bash ############################ # Usage: # File Name: arr.sh # Au … Continue reading
Shell数组默认以下标访问,因此键名都是整数。如果想使用字符串做为键名,可以通过关联数组来处理。 使用关联数组前,需要显示声明 : declare -A arrayName,示例代码如下。 #!/bin/bash ############################ # Usage: # File Name: arr.sh # Au … Continue reading
csv转vCard格式,用于通讯录批量导入手机。 csv字段如下: [root@repo csv2vcf]# cat list.csv 姓,名,QQ,手机号,邮箱,职位,生日,公司,部门 csv2vcf.sh代码: #!/bin/bash ############################ # Usage: # File Name: … Continue reading
完美世界运维开发的一道笔试题,大概意思是0到9中随机取6个数,然后翻转输出。之前写过一个随机生成root密码的脚本,无奈时间长了忘记了。这里总结一下shell中随机数的生成方法。 时间戳 date +%s 获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数。如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程 … Continue reading
Unicode编码的 “\u5730\u65b9\u7ad9”,用iconv转换为汉字,在不知道-f选项的情况下可以全都试一遍。 #!/bin/bash for id in `iconv -l`;do echo "$id:" && echo "\u5730\u65b9\u7ad9" |iconv -f $id -t gbk … Continue reading
修改服务器root密码脚本,借助配置管理工具可以批量执行。随机生成32为的包含数字,大小写字母及特殊字符的root密码,干掉弱口令。[1] #!/bin/bash special[0]="#" special[1]="$" special[2]="&" special[3]="^" special[4]="!" special[5 … Continue reading
UPDATE 20180605: 此种方式存在丢任务的情况,用 parallel 命令做多线程更好更简单 shell不能实现多线程,但是可以通过限制几乎同时放入后台执行的进程数量来模拟多线程,从而达到在提高脚本执行效率的同时又不明显增加负载的作用。 Ping脚本的多线程实现 #!/bin/bash set -x #开启调试模式 # Usa … Continue reading
用于备份,比如D盘project目录下有很多个独立的项目,如果直接上传到网盘,文件数量可能会超过限制,上传速度也慢,其实也没有必要,在网盘上浏览单个文件也没有意义。 但是,如果将整个project目录压缩,压缩包会比较大,想看单个项目时又需要将整个project压缩包下载下来,速度会比较慢。百度网盘的在线解压功能也有些鸡肋,貌似只能解压单 … Continue reading
想用xxd批量处理棋谱,shell脚本却总是出错,提示模糊的重定向。直到发现英文命名的wgs棋谱可以正常处理,才意识到是QQ围棋自动保存棋谱文件名中存在空格导致的问题。 解决方法是将变量放在引号之间: #!/bin/bash for file in ./*.wgs do xxd -g 1 -l 122 $"$file" > $"$f … Continue reading