15 lines
		
	
	
	
		
			525 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			15 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
 |