1. 使用字符串拼接尤其要用心(我终于感觉自己慢慢把这个坑给填平了):
${word}${suffix}
2. 字符串截取
${word[0]} 按照空格截取
3. shell中运算:
$(($a * $b))
4. 循环:
for i in $(seq 1 100)
对比while语句:
ip=1 #通过修改初值
while [ $ip != 254 ]; do
ip=`expr "$ip" "+" "1"`
done
5. split -l LineNumber FileName
LineNuber 通过 grep -m1 "Pattern" FileName 获取,嫌慢的话可以上 ack, ag等
最需要注意的时,默认情况下 split生成的文件名像 xaa xab
如果时多次split,比如在xaa基础上再次split,文件会被覆盖,导致丢失数据。
今天十点的点击数据就是这样丢失掉一部分的。
所以一定要指定 -a suffix !
6. redis.renamenx("oldkey","newkey")导致点击日志自动刷新出错。原因是newkey存在则会报错。
而如果使用redis 的rename则会覆盖掉已存在的key。这样会丢日志的!
命令行还是不要这样调用这些危险的东西了,还是好好设计项目吧!
7. 使用alias的结果应该如此 $(umonth) :
alias umonth='udate|cut -c 1-6'
mongoexpdays $campid $logtype $(umonth)${logday}