Calling your args with $* will do nasty things if any of your args
has a space in it.  "$@" will always do The Right Thing.

Just test the command directly, don't run it and then grab its exit value.
---
 functions |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/functions b/functions
index 0acdbbf..9d0aec3 100644
--- a/functions
+++ b/functions
@@ -123,14 +123,12 @@ stat_die() {
 status() {
        stat_busy "$1"
        shift
-       $* >/dev/null 2>&1
-       if [ $? -eq 0 ]; then
+       if "$@" >/dev/null 2>&1; then
                stat_done
                return 0
-       else
-               stat_fail
-               return 1
        fi
+       stat_fail
+       return 1
 }
 
 #  usage : in_array( $needle, $haystack )
-- 
1.7.1

Reply via email to