您的位置:首页 > 运维架构 > Shell

shell 问题汇总

2013-01-24 18:17 387 查看
1. 如果ret变量不止一行,直接使用

if [ -z $ret]; then

将报错,应使用双引号:

if [ -z "$ret" ]; then

2. 数序运算,使用$(()) 或 `expr * / *`:

$(( CURR-PREV ))

SLEEP_TIME=`expr $DBPC_INTERVAL / 2`

3. setsid 使用: 

http://www.cnblogs.com/forstudy/archive/2012/04/03/2427683.html


建立新会话:setsid()函数

  该调用进程是组长进程,则出错返回

    先调用fork, 父进程终止,子进程调用

  该调用进程不是组长进程,则创建一个新会话

    •该进程变成新会话首进程(session header)

    •该进程成为一个新进程组的组长进程。

    •该进程没有控制终端,如果之前有,则会被中断

组长进程不能成为新会话首进程,新会话首进程必定会成为组长进程...

setsid $DBPC_COMMAND  >/dev/null 2>&1 &

4. 变量替换,标准用法应加上大括号:

DBPC_LOG_FILE="$WORK_DIR/var/log/dbpc_${WEB_NAME}_${CLUSTER_NAME}.log"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LINUX Shell