tags: bash eval title: Examples of eval in Bash # Defining Functions With Variable Names I use this to define shorthands for ssh'ing to hosts around my network ```bash ssh_shortcut() { local SH="$1" local HOST="${2-$SH}" shift 2 eval "$SH() { ssh \"$HOST\" $* \"\$@\"; }" } for s in m1 m2 m3 m4; do ssh_shortcut "$s" done ssh_shortcut m5 mandy ssh_shortcut m6 micha ssh_shortcut m6l micha ls ``` which then means that `m1` will ssh into `m1`, and `m5` will ssh into `mandy`, and `m6l` will ssh into `micha` and run `ls`. There is a slight shortcoming with quoting in that the arguments to be passed to ssh cannot include spaces and such.