diff --git a/sor b/sor index abe344d..fd72465 100755 --- a/sor +++ b/sor @@ -21,8 +21,7 @@ help() { short_usage cat <&2 exit 1 @@ -81,10 +82,12 @@ while true; do esac done -while read_filename $null_terminate file; do +while read_filename "$null_terminate" file; do + # shellcheck disable=SC2154 + qfile=$(printf '%q' "$file") for test in "$@"; do - if eval "$test \"$file\""; then - print_filename $null_terminate "$file" + if eval "$test $qfile"; then + print_filename "$null_terminate" "$file" continue 2 fi done