aboutsummaryrefslogtreecommitdiff
path: root/ssh.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ssh.sh')
-rwxr-xr-xssh.sh7
1 files changed, 4 insertions, 3 deletions
diff --git a/ssh.sh b/ssh.sh
index b020508..7d25618 100755
--- a/ssh.sh
+++ b/ssh.sh
@@ -1,10 +1,11 @@
#!/bin/sh
# Allows to select a host to connect to through ssh
-# Hosts are read from the file $hostsfile, in which each line should be a host in the form identifier#address#port#input for pass
+# Hosts are read from the file $hostsfile, in which each line should be a host
+# in the form identifier#address#port#input for pass
# Port and input for pass are optional
hostsfile="$HOME/.hosts"
-hostnames="$(sed '/^#.*$/d' < "$hostsfile" | cut -d'#' -f1 | fzf)" || exit 0
+hostnames="$(sed '/^#.*$/d; /^$/d' < "$hostsfile" | cut -d'#' -f1 | fzf)" || exit 0
host="$(grep "$hostnames" < "$hostsfile")"
hostname="$(echo "$host" | cut -d'#' -f1)"
hostaddress="$(echo "$host" | cut -d'#' -f2)"
@@ -12,5 +13,5 @@ hostport="$(echo "$host" | cut -d'#' -f3)"
hostpass="$(echo "$host" | cut -d'#' -f4)"
echo "Connecting to $hostname"
[ "$hostpass" ] && pass -c "$hostpass"
-[ "$hostport" ] && ssh $hostaddress -p $hostport || ssh $hostaddress # No quotes here!
+[ "$hostport" ] && ssh "$hostaddress" -p "$hostport" || ssh "$hostaddress" # No quotes here!
#$(echo "ssh $hostaddress -p $hostport") # Alternative to prev line