Created
January 21, 2020 18:23
-
-
Save iammoen/75df9951fd8009d76f657e8f85d5a5e1 to your computer and use it in GitHub Desktop.
bash script function that I put in .zshrc that parses my ssh config file and allows me to select which server I want to ssh into easily.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sshinto() { | |
declare -a vmArray=( $(sed -nE 's/^Host ([^github])/\1/p' ~/.ssh/config) ) | |
vmArray_ArrayLen=${#vmArray[@]} | |
re='^[0-9]+$' | |
if [[ $1 = "" ]] | |
then | |
if [[ vmArray_ArrayLen -ne 0 ]] | |
then | |
tput setaf 4 | |
echo "SSH options:" | |
fi | |
for ((i=1; i<=$vmArray_ArrayLen; i++)) | |
do | |
echo " "$i. ${vmArray[i]} | |
done | |
tput sgr0 | |
echo "Enter number of server" | |
echo -n "(1 - "$((i - 1))"): " | |
read server_var | |
elif [[ $1 =~ $re ]] | |
then | |
server_var=$1 | |
else | |
unset server_var | |
echo "BAD INPUT RECEIVED. Should be a number indicating the server index." | |
fi | |
if [[ $server_var =~ $re ]] && [[ $server_var -le $vmArray_ArrayLen ]] | |
then | |
ssh ${vmArray[$server_var]} | |
else | |
echo "${server_var} is not a valid server index" | |
unset server_var | |
fi | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment