引数に指定されたコマンドを実行するシェル(bash)

[目的]
postmasterが起動されていたらvacuum(etc)を実行したい


[利用方法]
cronに設定する


[作成したシェル(bash)]

#!/bin/sh

# argument
COMMAND=$1

# postmaster process
PROC=`ps ax | grep postmaster`

# if defined $PROC
if [ -n "$PROC" ] && [ "$COMMAND" != "" ] 
  then
    if [ $PROC -gt 1 ]
      then
        $COMMAND
    fi
fi


[問題点]
引数に|(パイプ)や>(リダイレクト)が混じると上手くいかない


[修正したシェル(bash)]

#!/bin/sh

# argument
-COMMAND=$1
+COMMAND=$@

# postmaster process
PROC=`ps ax | grep postmaster`

# if defined $PROC
if [ -n "$PROC" ] && [ "$COMMAND" != "" ] 
  then
    if [ $PROC -gt 1 ]
      then
-        $COMMAND
+        $@
    fi
fi