From 77bd3e4ba5e28d1f9fdac1386520546d53132a7d Mon Sep 17 00:00:00 2001 From: tosu Date: Mon, 17 Jun 2024 21:43:40 +0200 Subject: [PATCH] Make path utility more general --- .local/bin/path | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.local/bin/path b/.local/bin/path index 7425ba0..d77ef31 100755 --- a/.local/bin/path +++ b/.local/bin/path @@ -6,13 +6,13 @@ __arrvar="__arr_random_n8241vn81y39c" in_list () { max_idx="$(($1))" - arg="$2" + arg="$(printf %s "$2" | sed 's|/\+|/|g; s|/$||')" [ "$max_idx" -ge 1 ] || return 1 [ -n "$arg" ] || return 2 idx_in_list=0 while [ "$idx_in_list" -le "$max_idx" ]; do val="$(eval "printf %s "'"'"\$${__arrvar}_$idx_in_list"'"')" - [ "$val" = "$arg" ] && return 0 + [ "$val" = "${arg}" ] && return 0 idx_in_list="$((idx_in_list+1))" done return 1 @@ -26,6 +26,7 @@ done idx=0 printf "%s\n" "$PATH" | sed "s/^:\+//; s/:\+$//; s/:\+/\n/g" | while IFS= read -r line; do + line="$(printf %s "$line" | sed 's|/\+|/|g; s|/$||')" in_list "$idx" "$line" && continue printf "%s\n" "$line" eval "${__arrvar}_$idx=\$line"