Module OASISUtils.POSIXShell

module POSIXShell: sig .. end

val split : string -> string list
split s: the string s is interpreted as command line arguments and splitted into its components (un-escaped). For example split "a \"b c\" d" = ["a"; "b c"; "d"]. Note that split "" = []. It is possible that substitutions such as "$a" (resp. "$(a b)") may be transformed into "${a}" (resp. "${a b}").
val escape : string -> string
escape s quote s if needed to protect spaces, '"' and '\'' so it reads as a single argument in a POSIX shell command, the content of which is identical to s (interpreted with OCaml conventions). If quoted, the returned string will start and end with '"'. The original string s is returned if no quoting is necessary.
val unescape : string -> string
unescape s returns a string s' removing all backslashes preceding a char.