LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 993|回复: 1

RPM打包:spec里%post动作中的脚本为什么无结果

[复制链接]
发表于 2009-9-16 14:44:27 | 显示全部楼层 |阅读模式
%post
RTIME=$(echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -A n -t x4|sed s/[^1-9a-fA-F]//g`)) % 60 |bc )

这个命令在shell下没有问题会得到一个随机数,但放在rpm的spec里,最后打出来的rpm包安装后得不到我要的结果。(我通过加echo $RTIME > /roo/tt看里面是空的)
 楼主| 发表于 2009-9-29 17:00:41 | 显示全部楼层
原因找到了,是调用$RTIME需要在$前加\转义

有个新问题:
我在post里使用这个随机时间,但发现最后在rpm包里面总是固定的一个时间点,不是根据不同机器安装时产生的随机值。
%post
#随机crontab时间
IPTIME=$(echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -A n -t x4|sed s/[^1-9a-fA-F]//g`)) % 60 | bc)
sed -i "s/IPTIME/\$IPTIME/" /etc/cron.d/abc-data

(abc-data里 分 对应的位置是IPTIME)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表