NAME
String::ShellQuote - quote strings for passing through the shell
SYNOPSIS
$string
= shell_quote
@list
;
$string
= shell_quote_best_effort
@list
;
$string
= shell_comment_quote
$string
;
DESCRIPTION
This module contains some functions which are useful for quoting strings which are going to pass through the shell or a shell-like object.
- shell_quote [string]...
-
shell_quote quotes strings so they can be passed through the shell. Each string is quoted so that the shell will pass it along as a single argument and without further interpretation. If no strings are given an empty string is returned.
If any string can't be safely quoted shell_quote will croak.
- shell_quote_best_effort [string]...
-
This is like shell_quote, excpet if the string can't be safely quoted it does the best it can and returns the result, instead of dying.
- shell_comment_quote [string]
-
shell_comment_quote quotes the string so that it can safely be included in a shell-style comment (the current algorithm is that a sharp character is placed after any newlines in the string).
This routine might be changed to accept multiple string arguments in the future. I haven't done this yet because I'm not sure if the strings should be joined with blanks ($") or nothing ($,). Cast your vote today! Be sure to justify your answer.
EXAMPLES
$cmd
=
'fuser 2>/dev/null '
. shell_quote
@files
;
@pids
=
split
' '
, `
$cmd
`;
CFG
"# Configured by: "
,
shell_comment_quote(
$ENV
{LOGNAME}),
"\n"
;
BUGS
Only Bourne shell quoting is supported. I'd like to add other shells (particularly cmd.exe), but I'm not familiar with them. It would be a big help if somebody supplied the details.
AUTHOR
Roderick Schertler <roderick@argon.org>
SEE ALSO
perl(1).