Tuesday, January 23, 2018

#1 2004-07-13 07:58:11 am

Trash Man
Sanitation Department
Registered: 2005-10-20
Posts: 5336

Escaping Unix special characters from 'POSIX Path' command

Apple's "POSIX Path of..." command doesn't 'escape' any of the special Unix characters when it returns the path to you. This means if you try to use that file path in a shell script, it just might fail if the path contains any special characters (like a space, etc.).

This script assumes you are passing it a unix file path and escapes the special characters with a \ character.

OS version: OS X


-- escape_string
-- [Colin A. Foster <cfoster@frozenheads.com>, 2004.07.13]

on escape_string(input_string)
   set output_string to ""
   set escapable_characters to " !#^$%&*?()={}[]'`~|;<>\"\\"
   repeat with chr in input_string
       if (escapable_characters contains chr) then
           set output_string to output_string & "\\" -- This actually adds ONE \ to the string.
       else if (chr is equal to "/") then
           set output_string to output_string & ":" -- Swap file system delimiters
       end if
       set output_string to output_string & chr
   end repeat
   return output_string as text
end escape_string

One mans trash is another mans treasure



Board footer

Powered by FluxBB

RSS (new topics) RSS (active topics)