#!/bin/bash
cd $2 args=(“$@”) len=${args: -1} let start=-$len-1
filter() {
descriptions=() for arg in "${args[@]: $start: $len}" do description=$(echo $arg | sed 's/^\[//;s/\]$//;s/,$//') for (( i=0; i<${#description}; i++ )); do if [ "${description:$i:1}" = "'" ]; then description="\"$description\"" escaped=true break fi done if ! [ $escaped ]; then description="'$description" description="$description'" fi descriptions+=" -e " descriptions+=$description done
}
let length=$#+$start-2
if [ $len -eq 0 ] then
eval "${args[@]:2:$length}"
else
filter eval "${args[@]:2:$length} ${descriptions[@]}"
fi
kill $1