#!/bin/sh # create # # setup # DIALOG=/usr/bin/dialog TEMPFILE=~/tmp/sshmanager$$$$$ RCFILE=~/.sshmanagerrc # touch $TEMPFILE chmod 600 $TEMPFILE trap "rm -f $TEMPFILE" 0 1 2 5 15 if [ ! -f $RCFILE ]; then echo "No config found, creating one, exiting..." touch $RCFILE echo "# comment" >> $RCFILE echo "# syntax: % num name host user port" >> $RCFILE echo "% 1 myhost myhost.mydomain.com myusername 22" >> $RCFILE echo "Edit config file! ($RCFILE)" exit 1 else for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 do ISTHERE=`cat $RCFILE | grep "^% $i " | wc -l | xargs` if [ "$ISTHERE" != "0" ]; then SSHLIST=`echo $SSHLIST; cat $RCFILE | grep "^% $i " | awk '{ printf $2" "$3 }'` fi done $DIALOG --menu "SSH sessions available:" 20 60 15 $SSHLIST 2> $TEMPFILE RETVAL=$? CHOICE=`cat $TEMPFILE` COMMAND=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print "ssh -p " $6 " " $5 "@" $4 }'` HOST=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $4 }'` RUSER=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $5 }'` PORT=`cat $RCFILE | grep "^% $CHOICE " | head -1 | awk '{ print $6 }'` case $RETVAL in 0) clear echo "Logging into $HOST port $PORT as user $RUSER..." $COMMAND;; 1) echo "Cancel pressed.";; 255) echo "ESC pressed.";; esac fi