Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8554855
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T14:58:45+00:00 2026-06-11T14:58:45+00:00

I want to find out from inside the script — the exact command I

  • 0

I want to find out from inside the script — the exact command I used to fire it up. I tried the following:

#!/usr/bin/env python

import sys, os
print os.path.basename(sys.argv[0]), sys.argv[1:]

But it loses info:

$ 1.py -1 dfd  'gf g' "df df"
1.py ['-1', 'dfd', 'gf g', 'df df']

You see — it has already lost the info as to wither I’ve used double quotes, single quotes or there have been no quotes at all — in the command.

Edit:

Here’s what I’m using. All args in my script have default values, and after args are parsed with argparse:

args = parser.parse_args()

I log them or if there’s a log — overwrite them:

logName = "." + (os.path.splitext(os.path.basename(sys.argv[0])))[0] + ".json"
if os.path.exists(logName):
    print "!!! I've found log", logName
    Args = bk_loads_json(logName)
    for arg in Args:
        exec('args.{0} = Args["{0}"]'.format(arg))
else:
    print "!!! the log of args is saved to", logName
    bk_saves_json(args.__dict__, logName)

defuns mentioned:

def bk_saves_json(myCustomDct, flNm):
    "Takes dict, and writes it to the file."

    FlNm = open(flNm, 'w')
    tmpJsn = json.dumps(myCustomDct, sort_keys=True, indent=4)
    FlNm.write(tmpJsn)
    FlNm.close()

def bk_loads_json(flNm):
    "Takes file of the json and returns it as a dict."

    json_data=open(flNm)
    data = json.load(json_data)
    json_data.close()
    return data
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-11T14:58:46+00:00Added an answer on June 11, 2026 at 2:58 pm

    The information you’re looking for (command params including quotes) is not available.

    The shell (bash), not python, reads and interprets quotes–by the time python or any other spawned program sees the parameters, the quotes are removed. (Except for quoted quotes, of course.)

    More detail

    When you type a command into the shell, you use quotes to tell the shell which tokens on your command line to treat as a single parameter. Whitespace is used to break up your command line into individual params, and quotes are used to override that–to include whitespace within a parameter instead of to separate parameters.

    The shell then forks the executable and passes to it your list of parameters. Any unquoted quotes have already been "used up" by the shell in its parsing of your command line, so they effectively no longer exist at this stage, and your command (python) doesn’t see them.


    By the way, I have to wonder why you care about getting the quotes. I have to say that at first glance it seems misguided. Perhaps we can help if you tell us why you feel you need them?

    EDIT

    In respose to OP’s comment below, here’s a way to output the original command line–or at least one that’s functionally equivalent:

    import pipes # or shlex if python3
    print sys.argv[0], ' '.join( [pipes.quote(s) for s in sys.argv[1:]] )
    

    It just adds quotes around all params.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to find out how to reproduce the following error in Ruby 1.9:
I want to find out the following: given a date ( datetime object), what
I am wanting to find out if the following is possible with PHP inside
I want to find out the position of an element which is in iframe.
I want to find out if it is possible to create Android API's that
I want to find out how I can store small strings in an array
I want to find out the time in unix time (ie seconds since the
I want to find out which tables have been modified in the last hour
I want to find out whether a certificate's private key is stored in a
I WANT to find out if a there is a way to check if

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.