最近给双十一晚会做直播,并且双十一红包一角标广告形式投放出去,在预热阶段需要看下效果,数据团队没法给出一些指标数据,需要我们自己做数据分析给出,平时shell使用的少,很多数据分析的命令忘记了,趁此机会总结下:
nohup
可以在退出、注销账户、关闭终端的情况下程序仍然可以在后台运行,默认情况下
的所有输出都被重定向到一个名为
nohup.out的文件中,除非指定了文件。
如:
该命令的一般形式为:nohup command &
url=nohup command > myout.file 2>&1 &
我用到的如
nohup ./red-run.sh 20161024 >red-run.sh.20161024.log 2>&1 &
&后台运行
只要终端关闭,程序即停止运行,不能做到真正的后台运行
冒号用法:
冒号标示空语句,首先冒号可以表示永真(相当于TRUE关键字)如while :;do...done(while循环的条件始终为真);其次冒号可以清空一个文件,:>log将冒号重定向到文件,log文件内容被清空,所以:>命名是常用的清空文件的命令;接着冒号最重要的用法是:不做任何事,只做参数展开。
子shell
()
圆括号结构:
能强制将其中的命令运行在子shell中
子shell只能继承父shell的一些属性,而子shell不可能反过来改变父shell的属性。子shell能够从父shell继承得来的属性有:当前的工作目录、环境变量、标准输入输出和错误输出、所有已打开的文件描述符、忽略的信号。
wait
wait是一个内建命令,用于等待后台执行的作业全部完成后再执行下面的命令,使用wait在shell中实现了多线程的同步功能
例如:
#!/bin/bash
sleep 10 &
sleep 5&
wait #等待10秒后,退出
例如2:
#!/bin/bash
sleep 10 &
sleep 5&
wait $! #$!表示上个子进程的进程号,wait等待一个子进程,等待5秒后,退出