aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/shoal15
1 files changed, 8 insertions, 7 deletions
diff --git a/bin/shoal b/bin/shoal
index 469ce487..2eba4a12 100755
--- a/bin/shoal
+++ b/bin/shoal
@@ -1,15 +1,16 @@
-#!/bin/sh
+#!/usr/bin/env bash
#
-# shoal(1) -- Print all the non-wildcard Host names (first
-# one per line) from an ssh_config(5) file, defaulting to
-# $HOME/.ssh/config.
+# shoal(1) -- Print all the non-wildcard Host names (first one per line) from
+# an ssh_config(5) file, defaulting to $HOME/.ssh/config.
#
# Author: Tom Ryder <tom@sanctum.geek.nz>
# Copyright: 2014
# License: Public domain
#
-
-prog='$1 == "Host" && $2 !~ /[^a-z0-9_-]/ {print $2}'
-awk "$prog" "${1:-$HOME/.ssh/config}"
+while read -r option value _ ; do
+ if [[ $option == 'Host' && $value != *[^[:alnum:]_-]* ]] ; then
+ printf '%s\n' "$value"
+ fi
+done < "${1:-$HOME/.ssh/config}"