#!/bin/bash base=$(basename "$0") if [[ $0 == */* ]]; then self=${0} else self=$(which "$0") fi self=$(realpath "${self}") which -a "${base}" | while read -r fake; do real=$(realpath "${fake}") if [[ ${real} != ${self} ]]; then "${real}" "$@" break fi done declare -a file while [[ $# -ne 0 ]]; do case "$1" in (-s) shift;; (-o) outp=$2; break;; (*) file[${#file[@]}]=$1;; esac; shift done if [[ -n "${outp}" ]]; then ldid -T- "${outp}" else for mach in "${file[@]}"; do ldid -T- "${mach}" done fi