View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Wilson Snyder > IPC-Locker > uriexec


Annotate this POD


View/Report Bugs


uriexec - Decode and execute the given URI-encoded command


  uriexec [--cd I<cd>] echo %24HOME


Run the specified command (optionally from the specified directory). Each URL-encoded character (%xx) is translated prior to executing the command with exec().

Uriexec solves the classic problem of having to figure out how to quote shell metacharacters to pass commands across multiple shells and ssh processes. Simply call "uriexec" on a string created with URI::Escape::uri_escape, and it will end up executing on the final machine with proper quoting.


--cd dir

Directory to cd to before the exec of the given command, URI-encoded.

--shell shell

Name of the shell and additional parameters to prefix, URI-encoded. Defaults to "/bin/sh -c".


Instead of executing the command, print the decoding of the command to aid in user debug. This also supports decoding nested uriexec calls, however they are not always perfect so the output from this option is only for users, not scripts.


Displays program version and exits.


Copyright 2005-2012 by Jeff Dutton <>. This program is free software; you can redistribute it and/or modify it under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.


Jeff Dutton <>, Wilson Snyder <>


URI::Escape, IPC::Locker

syntax highlighting: