使用linux下的shell编程,创建 /home/random.sh 文件,实现以下功能: 1、使用系统变量 RANDOM 产生1-6的随机数 2、使用 for 循环由1得到的随机数,并输出如下格式:年月日 时分秒#%#随机数#%#随机8位字符串,并将内容附加重定向到 /home/random.log 文件 数据参考如下: 2023-05-24 13:14:00#%#1#%#e0a15f36 3、配置 crontab ,每分钟的第5秒运行 random.sh 程序(此配置内容写在 random.sh 文件的第二行,并注释)
时间: 2024-02-03 20:14:30 浏览: 29
以下是实现功能的代码:
```bash
#!/bin/bash
# 定义变量
DATE=$(date "+%Y-%m-%d %H:%M:%S")
RANDOM_NUM=$(( RANDOM % 6 + 1 ))
RANDOM_STR=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
# 输出到日志文件
for i in $(seq 1 $RANDOM_NUM)
do
echo "${DATE}#%#${RANDOM_NUM}#%#${RANDOM_STR}" >> /home/random.log
done
```
其中,首先使用 `date` 命令获取当前时间,并将其赋值给变量 `DATE`。然后使用 `RANDOM` 变量获取 1-6 的随机数,并将其赋值给变量 `RANDOM_NUM`。接着使用 `cat` 命令读取 `/dev/urandom` 设备文件的内容,`tr` 命令删除其中的非字母和数字字符,`fold` 命令将字符串每8个字符分为一组,`head` 命令只取第一组,最后将结果赋值给变量 `RANDOM_STR`。
接着使用 `for` 循环,循环次数为随机数 `RANDOM_NUM`。每次循环输出一行设置好格式的字符串到 `/home/random.log` 文件中,使用 `>>` 符号将其附加重定向到文件末尾。
最后,在文件的第二行加入以下内容注释解释如下:
```bash
# crontab -e
# * * * * * /bin/bash /home/random.sh >/dev/null 2>&1
# 每分钟的第5秒运行 random.sh 程序
```
将 `random.sh` 文件赋予执行权限,即可配置 crontab,每分钟的第五秒运行该程序。