shell脚本编程学习第十二天
使用 for 循环在/oldboy 目录下批量创建 10 个 html 文件,其中每个文件需要包含 oldboy 固定字符串加 10 个随机小写字母.
#!/bin/bash
. /etc/init.d/functions // . 是执行的命令
path=/home/tmp
if [ ! -d $path ];then // 判断路径是否存在
mkdir -p $path // 不存在就创建一个
fi
for i in `seq 10`
do
a=$(openssl rand -base64 30|sed "s#[^a-z]##g"|cut -c 1-10) //将所有非字母替换为空,然后剪切第1-10个字母
touch $path/oldboy_${a}.html
if [ $? -eq 0 ]
then
action "touch ok" /bin/true
else
action "touch not ok" /bin/false
fi
done
. /etc/rc.d/init.d/functions 就是 source /etc/rc.d/init.d/functions,使用这些函数。“.”是一个命令,(相当于source,再当前的shell里去读取、执行文件,文件不需要有执行权限)后有一个空格,使用action必须使用这个命令,才会出现这样的效果(其实是调用系统的命令测试shell,具体可以看/etc/rc.d/init.d/functions)。
**seq:**产生一个数到另一个数之间的所有整数。
openssl rand: 用于产生指定长度个bytes的随机字符。
openssl rand[-out file] [-randfile(s)] [-base64] [-hex]num
-out 将随机字符放到一个文件中,
-base64 / -hex 对随机字符串进行base64编码或用hex格式显示。
**cut:**从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出;
-b :输入每行第n个字符(半角,注意如果有中文将乱码)。
-c :输入每行第n个字符(适用中文)。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符(例如中文)。仅和-b标志一起使用。
sed: 继续学习,sed “s#被替换内容#替换成什么#g” file
sed的用法:https://www.cnblogs.com/strugger-0316/p/13622461.html
[abc]:匹配[] 中的所有字符 [^abc] 匹配除了[] 中的所有字符。
正则表达相关:https://www.runoob.com/regexp/regexp-syntax.html