Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: [SHELL] Detect backslash in command line args

by syphilis (Archbishop)
on Jul 09, 2013 at 00:19 UTC ( [id://1043208]=note: print w/replies, xml ) Need Help??


in reply to Re: [SHELL] Detect backslash in command line args
in thread [SHELL] Detect backslash in command line args

The problem is that the history command isn't a bash executable, and so doesn't work in the context of a system() call by Perl.

Might Term::UI::History be of help here ?
Looks like accessing the shell's history is the only hope.

Thanks for the confirmations that this isn't trivial anywhere except MS Windows shells (which, I'm assuming, arises because on Windows the backslash is not necessarily an escape).
I have a perl script that I can use to transfer files from my Windows 7 box to my Ubuntu box. If I do perl get.pl C:/some/file all is fine. I was merely hoping to catch the error when I inadvertently do perl get.pl C:\some\file.
It's not really such a big deal because I eventually find out about the error anyway - and it's not actually an error that I'm liable to make with great frequency.

Cheers,
Rob

Replies are listed 'Best First'.
Re^3: [SHELL] Detect backslash in command line args
by mtmcc (Hermit) on Jul 09, 2013 at 07:07 UTC

    It doesn't arise on Windows, because the OS doesn't process the command line, just hands it straight to perl.

    I'm not certain that Term::UI::History wouldn't work, but because it couldn't be running when the command line is processed by the OS, I can't quite see how it would work.

    If your main concern is that you might ask perl to get a file that doesn't exist, I would use something like:

    die "$fileName not found.\n\n" if !-e $fileName;

    If it's writing to a new file, maybe you could similarly check that the directory exists, before writing to the file ?

    In any case, it's still a good question, and if you do figure out an answer, please let me know!

    Michael

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1043208]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-03-29 15:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found