$ swap() { typeset -n var1=$1 var2=$2; set -- "$var1" "$var2"; var1=$2; var2=$1; } $ a=1 b=2 $ echo $a $b 1 2 $ swap a b $ echo $a $b 2 1 $ swap a b $ echo $a $b 1 2