16 lines
525 B
Bash
Executable file
16 lines
525 B
Bash
Executable file
#!/bin/bash
|
|
[ $# -eq 0 ] && { # $# is number of args
|
|
echo "$(basename $0): missing command" >&2
|
|
exit 1
|
|
}
|
|
prog="$(which "$1")" # see below
|
|
[ -z "$prog" ] && {
|
|
echo "$(basename $0): unknown command: $1" >&2
|
|
exit 1
|
|
}
|
|
shift # remove $1, now $prog, from args
|
|
tty -s && exec </dev/null # if stdin is a terminal, redirect from null
|
|
tty -s <&1 && exec >/dev/null # if stdout is a terminal, redirect to null
|
|
tty -s <&2 && exec 2>&1 # stderr to stdout (which might not be null)
|
|
"$prog" "$@" & # $@ is all args
|