Use Applescript variable in Python command line

Using automator
Python Shell Output -> [1,2,3,4,5]
goes to Applescript
Run Applescript ->
on run {input}
    set seq_list_appscript to {}
    do shell script "python -c 'for s in input: print s'"
end run
it doesn't work . . . how can I call the "input" which is an Applescript variable within the "do shell script" python command line ?

If the input is actually a list of items, then you would need to iterate through them or coerce the list to something for the command line.  If the input is just the text "[1,2,3,4,5]", then the variable just needs to be inserted into the text of your script statement - the results of the script are returned by the do shell script command, so they can also be assigned to a variable:
    set whatever to (do shell script "python -c 'for s in " & input & ": print s'")
    display dialog whatever

Similar Messages

  • Using environment variables in RMAN command line

    I'm running Oracle 11gR2 and working in a Solaris 10 environment.
    I am trying to run the rman command by connecting to the target, auxiliary, and catalog by catting out the contents of password files where I have my connect strings stored for each database. Also in there I am trying to use environment variables to reference each database.
    rman target "`cat ${HOME}/password_dir/prod_connect.txt`@${PROD_DB}" auxiliary "`cat ${HOME}/password_dir/stage_connect.txt`@`${STAGE_DB}`" catalog "`cat ${HOME}/password_dir/rman_catalog_connect.txt`@${RMAN_CATALOG_DB}"
    The end result I need is:
    rman target "username/password@db" auxiliary "username/password@db" catalog "username/password@db"
    Is this possible?

    Levi,
    Good idea on the variables. I set up a variable with my connect string including the TNS reference (i.e. user/password@XXX)
    So when I run this:
    rman auxiliary ${AUXILIARY}
    I get this:
    Recovery Manager: Release 11.2.0.2.0 - Production on Wed Jun 13 10:19:44 2012
    Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-00554: initialization of internal recovery manager package failed
    RMAN-04006: error from auxiliary database: ORA-01031: insufficient privileges
    But if I try to run it without the TNS entry it works. The only issue with that is I need the TNS reference to connect to the database I'm cloning from. Any idea what's going on here?
    Also, the same applies to the TARGET, but oddly enough not the CATALOG. It will connect to my rman catalog using the TNS just fine. The only difference is with the catalog I'm logging in as my rman catalog user. With the TARGET and AUXILIARY I'm logging in as the system user.
    Edited by: Nevin on Jun 13, 2012 8:25 AM

  • Using MDT Variables at a command prompt

    Is it possible to use Task Sequence variables on a "Run Command Line" step?
    I have as my command line:
    loadstate.exe \\%UDShare%\%UDDir% /v:5 /c  /i:"C:\MININT\USMT\X64\MigApp.xml" /i:"C:\MININT\USMT\X64\MigUser.xml" /i:"C:\MININT\USMT\X64\MigDocs.xml" /i:"C:\MININT\USMT\X64\migexcludexternaldrives.xml" /i:"C:\MININT\USMT\X64\migmydocs.xml"
    /i:"C:\MININT\USMT\X64\migwallpaper.xml" /config:"C:\MININT\USMT\X64\ZTIUserState_Config.xml"
    And my Start in is:
    C:\MININT\USMT\X64
    But I receive an error that seems that it is running the command with "\\%UDShare%\%UDDir%" instead of inserting the values for the variables.

    Sorry, I tried that, and it does not work.  I receive the errors:
    Expand a string: loadstate.exe \\%UDShare%\%OSDComputername% /v:5 /c  /i:"C:\MININT\USMT\X64\MigApp.xml" /i:"C:\MININT\USMT\X64\MigUser.xml" /i:"C:\MININT\USMT\X64\MigDocs.xml" /i:"C:\MININT\USMT\X64\migexcludexternaldrives.xml" /i:"C:\MININT\USMT\X64\migmydocs.xml"
    /i:"C:\MININT\USMT\X64\migwallpaper.xml" /config:"C:\MININT\USMT\X64\ZTIUserState_Config.xml"
    Set command line: loadstate.exe \\%UDShare%\%OSDComputername% /v:5 /c  /i:"C:\MININT\USMT\X64\MigApp.xml" /i:"C:\MININT\USMT\X64\MigUser.xml" /i:"C:\MININT\USMT\X64\MigDocs.xml" /i:"C:\MININT\USMT\X64\migexcludexternaldrives.xml" /i:"C:\MININT\USMT\X64\migmydocs.xml"
    /i:"C:\MININT\USMT\X64\migwallpaper.xml" /config:"C:\MININT\USMT\X64\ZTIUserState_Config.xml"
    Start executing the command line: loadstate.exe \\%UDShare%\%OSDComputername% /v:5 /c  /i:"C:\MININT\USMT\X64\MigApp.xml" /i:"C:\MININT\USMT\X64\MigUser.xml" /i:"C:\MININT\USMT\X64\MigDocs.xml" /i:"C:\MININT\USMT\X64\migexcludexternaldrives.xml" /i:"C:\MININT\USMT\X64\migmydocs.xml"
    /i:"C:\MININT\USMT\X64\migwallpaper.xml" /config:"C:\MININT\USMT\X64\ZTIUserState_Config.xml"
    Executing command line: loadstate.exe \\%UDShare%\%OSDComputername% /v:5 /c  /i:"C:\MININT\USMT\X64\MigApp.xml" /i:"C:\MININT\USMT\X64\MigUser.xml" /i:"C:\MININT\USMT\X64\MigDocs.xml" /i:"C:\MININT\USMT\X64\migexcludexternaldrives.xml" /i:"C:\MININT\USMT\X64\migmydocs.xml"
    /i:"C:\MININT\USMT\X64\migwallpaper.xml" /config:"C:\MININT\USMT\X64\ZTIUserState_Config.xml"
    Failed to run the action: Run Command Line. 
    The drive cannot find the sector requested. (Error: 0000001B; Source: Windows)
    The execution of the group (State Restore) has failed and the execution has been aborted. An action failed.
    Operation aborted (Error: 80004004; Source: Windows)
    Failed to run the last action: Run Command Line. Execution of task sequence failed.
    The drive cannot find the sector requested. (Error: 0000001B; Source: Windows)
    Task sequence execution failed with error code 80004005

  • Using a variable in netsh command to set ip address on NIC

    hi friends
    i wrote an script which gets an input & use that variable to set ip address on NIC. but actually it doesn't set ip address. may you please help me.
    my script contains:
    $VMNumber=Read-Host "please enter your VM number (for example 2)"
    Netsh interface ipv4 set address NIC static 192.168.1.$VMNumber

    1. I do not thing that the use of netsh is a right way.
    2. You will need a table with MAC address in first column and IP address in second to correctly map IP address to computer. MAC addresses are unique identification.
    3. Follow this article including comments and adapt scripts to your task
    http://www.powershellpro.com/powershell-tutorial-introduction/powershell-wmi-methods/
    HTH
    Milos
    hi Milos
    thank a lot for your useful answer.
    but let me say that my need has nothing to do with MAC address.
    in my test lab, i need an script which asks the administrators to enter their VM number & it saves this input as a variable & set is as the last octet in their VM IPV4 Address.
    so can we tell it as a rule that variables we create in powershell, can't be used inside non cmdlets (inside legacy cmd commands) ?

  • Problem using extension manager CS5 with command line

    Hi All,
    I had posted my question here : http://forums.adobe.com/message/4695419#4695419, but was advised to do so here as well..
    I have a requirement to get the path of all the installed Extension Managers on any Windows system for the purpose of installing an extension.. I thought, there would be no problem in getting the path from the registry. There was no problem in Win XP, but the same does not work for Win 7.. I googled, and found alternate ways to get the path.
    Here is the link : http://forums.adobe.com/thread/851359. I followed the instructions in this post, but failed to get this working for CS5 as mentioned in my previous thread... No problem for CS5.1 and CS6.. Why is that?
    I want to get this working for CS5, CS5.1, CS6... How can I get the path of all the Extension Manager versions installed on a Windows system?
    Please refer to the following screenshots to get a better understanding of my problem,
    I created a jsx file named "Result.jsx", which I saved in my D drive, with the following code,
    resultFile = new File("D:/result.log");
    resultFile.open("w");
    resultFile.write(BridgeTalk.__diagnostics__);
    resultFile.close();
    If I run this directly from ESTK CS5, there is no problem, and I get the result.log file. I tried to execute this script via command line as shown in the screenshot,
    On executing the above, I got the following error,
    What is going wrong?
    Please help!

    I am sorry for the poor documentation of Extension Manager which causes you so much trouble.
    1. You can use BridgeTalk API to ask specific version of Extension Manager to do something. There is sample in packaging_extension.pdf about this. You don't need to know the installation path of Extension Manager. One thing to note is that the value of bt.target is version specific, i.e. "exman-5.0", "exman-5.5" send this message to different version of Extension Manager, so you can change this value to install/enable/disable/remove extensions using different version of Extension Manager. More detailed documentation of BridgeTalk can be found by clicking "Help" menu then clicking "Javascript Tools Guide CS5" in "Adobe ExtendScript Toolkit CS5".
    2. Specific version of Extension Manager only manage extensions for corresponding version of product. You should use Extension Manager CS5 to install extensions for Photoshop CS5. The reason that the extension you installed for Photoshop CS5.1 using Extension Manager CS5.5 is displayed for Photoshop CS5 in Extension Manager CS5 is that two versions of Photoshop specified the same directory for Extension Manager to manage extensions. This is a defect and will cause some problems if multiple versions of Photoshop co-existed in one machine. But "to find  previous (CS5) extension manager and to enable it" should work for you, I guess you use command line to enable it and specify wrong product name (see #3) so that it doesn't work.
    3. When using command line, you should specify "product" attribute with the name displayed at the left panel of Extension Manager. So "Photoshop CS5 32" is correct. Remember to enclose it with double quote because of existence of space character.
    4. As above mentioned, use display name of Photoshop, and call proper version of Extension Manager by BridgeTalk.

  • How to create and use library JAR files with command-line tools?

    Development Tools -> General Questions:
    I am trying to figure out how to put utility classes into JAR files and then compile and run applications against those JAR files using the command-line javac, jar, and java tools. I am using jdk1.7.0_17 on Debian GNU/Linux 6.0.7.
    I have posted a simple example with one utility class, one console application class, and a Makefile:
    http://holgerdanske.com/users/dpchrist/java/examples/jar-20130520-2134.tar.gz
    Here is a console session:
    2013-05-20 21:39:01 dpchrist@desktop ~/sandbox/java/jar
    $ cat src/com/example/util/Hello.java
    package com.example.util;
    public class Hello {
        public static void hello(String arg) {
         System.out.println("hello, " + arg);
    2013-05-20 21:39:12 dpchrist@desktop ~/sandbox/java/jar
    $ cat src/com/example/hello/HelloConsole.java
    package com.example.hello;
    import static com.example.util.Hello.hello;
    public class HelloConsole {
        public static void main(String [] args) {
         hello("world!");
    2013-05-20 21:39:21 dpchrist@desktop ~/sandbox/java/jar
    $ make
    rm -f hello
    find . -name '*.class' -delete
    javac src/com/example/util/Hello.java
    javac -cp src src/com/example/hello/HelloConsole.java
    echo "java -cp src com.example.hello.HelloConsole" > hello
    chmod +x hello
    2013-05-20 21:39:28 dpchrist@desktop ~/sandbox/java/jar
    $ ./hello
    hello, world!I believe I am looking for:
    1. Command-line invocation of "jar" to put the utility class bytecode file (Hello.class) into a JAR?
    2. Command-line invocation of "javac" to compile the application (HelloConsole.java) against the JAR file?
    3. Command-line invocation of "java" to run the application (HelloConsole.class) against the JAR file?
    I already know how t compile the utility class file.
    Any suggestions?
    TIA,
    David

    I finally figured it out:
    1. All name spaces must match -- identifiers, packages, file system, JAR contents, etc..
    2. Tools must be invoked from specific working directories with specific option arguments, all according to the project name space.
    My key discovery was that if the code says
    import com.example.util.Hello;then the JAR must contain
    com/example/util/Hello.classand I must invoke the compiler and interpreter with an -classpath argument that is the full path to the JAR file
    -classpath ext/com/example/util.jarThe code is here:
    http://holgerdanske.com/users/dpchrist/java/examples/jar-20130525-1301.tar.gz
    Here is a console session that demonstrates building and running the code two ways:
    1. Compiling the utility class into bytecode, compiling the application class against the utility bytecode, and running the application bytecode against the utility bytecode.
    2. Putting the (previously compiled) utility bytecode into a JAR and running the application bytecode against the JAR. (Note that recompiling the application against the JAR was unnecessary.)
    (If you don't know Make, understand that the working directory is reset to the initial working directory prior to each and every command issued by Make):
    2013-05-25 14:02:47 dpchrist@desktop ~/sandbox/java/jar
    $ cat apps/com/example/hello/Console.java
    package com.example.hello;
    import com.example.util.Hello;
    public class Console {
        public static void main(String [] args) {
         Hello.hello("world!");
    2013-05-25 14:02:55 dpchrist@desktop ~/sandbox/java/jar
    $ cat libs/com/example/util/Hello.java
    package com.example.util;
    public class Hello {
        public static void hello(String arg) {
         System.out.println("hello, " + arg);
    2013-05-25 14:03:03 dpchrist@desktop ~/sandbox/java/jar
    $ make
    rm -rf bin ext obj
    mkdir obj
    cd libs; javac -d ../obj com/example/util/Hello.java
    mkdir bin
    cd apps; javac -d ../bin -cp ../obj com/example/hello/Console.java
    cd bin; java -cp .:../obj com.example.hello.Console
    hello, world!
    mkdir -p ext/com/example
    cd obj; jar cvf ../ext/com/example/util.jar com/example/util/Hello.class
    added manifest
    adding: com/example/util/Hello.class(in = 566) (out= 357)(deflated 36%)
    cd bin; java -cp .:../ext/com/example/util.jar com.example.hello.Console
    hello, world!
    2013-05-25 14:03:11 dpchrist@desktop ~/sandbox/java/jar
    $ tree -I CVS .
    |-- Makefile
    |-- apps
    |   `-- com
    |       `-- example
    |           `-- hello
    |               `-- Console.java
    |-- bin
    |   `-- com
    |       `-- example
    |           `-- hello
    |               `-- Console.class
    |-- ext
    |   `-- com
    |       `-- example
    |           `-- util.jar
    |-- libs
    |   `-- com
    |       `-- example
    |           `-- util
    |               `-- Hello.java
    `-- obj
        `-- com
            `-- example
                `-- util
                    `-- Hello.class
    19 directories, 6 filesHTH,
    David

  • Getting error when using the "/parameter" switch in command line run

    Has anyone experienced this problem before?
    My report queries over 100,000 records from a view. When the report is run from the command line every thing works fine.
    But when I add a condition using a "parameter", although the report still runs fine from the destop, when launched from the command line it errs.
    "Oracle Discoverer Desktop has encountered a problem and needs to close. ..."
    "The instruction at "0x0044397c" referenced memory at "0x0000004e". The memory cound not be "read"...."
    I'm guessing its a memory issue with my PC. I've tested using a parameter with other reports using fewer records and it doesn't err from the command line.
    I can work around the issue by not using a parameter but then I have 20 versions of the same report each with a different condition.
    Any suggestions would be appreciated.
    Lise McGillis

    Hi Michael,
    I'm using an DELL Intel Pentium 4 CPU 3.00 GHz with 1 GB of RAM. We use Microsoft Windows XP Prof version 2002.
    As for Discoverer we are using 10G, Desktop Client 10.1.2.48.18 - 1047500 KB available memory , 2099744 KB Free disk space.
    I'm not sure I have acess to a computer with more RAM but I'm looking into it.
    What I'm frustrated by is the fact that the parameter works fine when run directly from the desktop but when passed from the command line it bombs... but only when dealing with mega records.
    Lise.

  • Using process manager to get command line of a running application

    hello,
    i'm currently using the process manager framework to get a list of current running processes on the machine. i would like to get the command line to display to the user. i can see how to get the path to the executable file. i.e. /Applications/AppRunning however i'd like to get the full command line and im either missing it from the documentation or not seeing the links to get that information. so i want to get /Applications/AppRunning -c someoption -f another option. can anyone recommend a function to assist me or if im using the wrong API to get the information i am looking for can someone recommend the correct API?
    thank you very much.

    musikit wrote:
    thank you very much. you have been more then informative about this. i'll have to check out the kernel queues and events api you mentioned. i've never really digged this far into a unix style OS before. it's pretty interesting. it seems like EVFILT_PROC is what i want to get process starts/stops.
    I've never done this either, so I'm quite sure I'm missing some big things here. Some other things that might be handy are dtrace and ptrace. I strongly suspect that there is some really easy way to do it that I don't know about. You might try searching on the Apple developer mailing lists.
    at the end of the day though i still need to be able to retrieve the command line of a running executable. 'ps' can do it so i'm assuming there is a programatic way of doing it. is the mac 'ps' command source code online anywhere that i can see what it's doing?
    I don't know about ps. There are a number of Mac applications that do things similar to what you propose. Marcopolo is open-source and can detect when applications are launched.
    i have looked at the linux procps package however it relies on the procfs which mac does not have.
    Amit Singh wrote a MacFUSE-based procfs for the Mac. You can look at the source code to that, but, to quote Amit "the MacFUSE version of procfs makes heavy use of the Mach programming interfaces". Good luck with that. Still, there might be some helpful information in that link.

  • How to use Xcode Tools with a Command Line Project

    I'm using Xcode 3.2.6, C compiler.  I've had an application for years that is command-line on the terminal, compiling with a makefile.  Now I want to actually use the performance tools included with Xcode, such as threads, time profiler, etc.  How do I do this?
    I created a project for it (never did that before), added source files, etc -- it seems to work.  It created the application, which will run via the terminal like always.  But whenver I try to use Run (inside Xcode), a window opens up saying "Stop Executable".  I have to click OK and that's the end of it.  Nothing has happened.
    I found an old query on the web similar to this from 2008.  The suggestion was to open the console.  Still nothing.  "Sync with Debugger" does no good.  Please help!

    That I understood.  I did try Run > Console.  Nothing intelligible happened.  Then I synced with the debugger.  he program is called fer64.  I get this:
    No executable file specified.
    Use the "file" or "exec-file" command.
    No executable file specified.
    Use the "file" or "exec-file" command.
    The program being debugged is not being run.
    The program being debugged is not being run.
    Not executing.
    (gdb) r fer64
    Data Formatters temporarily unavailable, will re-try after a 'continue'. (Unknown error loading shared library "/Developer/Applications/Xcode.app/Contents/PlugIns/GDBMIDebugging.xcplugin/Con tents/Resources/PBGDBIntrospectionSupport.A.dylib")
    Starting program:  fer64
    Not executing.

  • Use third party framework in Command Line Tool

    Hi.  I'm writing a small application for a friend of mine, and basically what it does is lets you put in some information, and then creates and stores that information in an Excel file.  However, all of my research suggests that C++ doesn't work nicely with Excel files, so I found a 3rd party framework called LibXL which provides C++ with the ability to create and edit Excel files.  My only problem is getting my Command Line Tool to use this framework.  I'm not even sure if it is possible, but if someone could help me out, I would really appreciate it!
    P.S: I'm using XCode 4.2 to write this application, and I'm using Command Line Tool because the application has to be useable on Windows.

    That last one is an excellent punch line!
    >I found a 3rd party framework called LibXL which provides C++ with the ability to create and edit Excel files.
    That should be coming with a manual. Some frameworks can be included in their entirety into the program you are writing, where for others you can only reference to it and you have to distribute the framework file(s) along with your own application. This doesn't sound like one, but an external framework may only be meant for GUI functions, in which case you cannot write a Terminal-only program.
    But here comes the kicker:
    >P.S: I'm using XCode 4.2 to write this application, and I'm using Command Line Tool because the application has to be useable on Windows.
    It's possible for you to *write* the program but not to compile it. (Actually, you *can* compile it but then you have a Mac Terminal program, not a Windows one.) Even if you know what you are doing and are happy with sending over the source code, together with instructions on how to compile it under Windows, this implies you would only and *exclusively* use functions that are available in compilers for Windows. That rules out your External framework idea -- unless there is a Windows version available as well (do check for that; if this is an Open Source project, there very well may be.) But you are still programming "blind", and if you get it to work on your Mac (and nevermind the problem with the framework being external, because you won't need to send it over anyway) but your friend canNOT make it work under Windows, you won't know if it's because the Windows version of the compiler doesn't accept the external library, or it's the wrong version, or you accidentally used a Mac-only feature anyway, or the friend does not know how to compile ... et cetera, et cetera.
    Best advise is to install VirtualBox (or something similar) on your system, test all you want with XCode but then, after you got it to work, carry over the project into Windows and start a-new.

  • How do I start an app using transset-df with the command line?

    I'm using openbox and have found that I can make xfce4-panel transparent using transset. The only problem is that I have to run "transset" and then click on the panel every time. Is there a command I could just type in to the command line that would start xfce4-panel with .75 transparency? I could then add that to my autostart.sh file and all would be good and dandy.
    What I was thinking is maybe there's a command like
    transset-df .75 xfce4-panel
    that starts up the panel with 75% opacity. Obviously that doesn't work because I tried it. I also read something about using a script, but I don't know how to write those. Perhaps there is a way to set it so whenever xfce4-panel is started, transset-df sets it at 75% opacity? How would I go about doing this?
    Last edited by Redrazor39 (2009-06-11 15:15:19)

    Openbox seems to be doing a 'tidy up' of all windows after autostart.sh completes.
    This would be fine, except for the fact that the tidy up re-renders every window and while it does so it re-sets transparency as part of the same process.
    So, to get your xfce panel to stick at the transparency setting you apply with transset-df, you need to ensure the transset-df is done after autostart.sh finishes.
    The easiest way to achieve this is to create a small script, say in /usr/local/bin
    # /usr/local/bin/openbox-xfce-panel-transset
    # Set xfce4-panel transparency after safe delay
    sleep 1
    transset-df -n "xfce4-panel 4.6.1" 0.75
    Add a call to this as the last line of your autostart.sh
    # Set xfce4-panel transparency after autostart.sh has exited
    openbox-xfce-panel-transset &
    Regards,
    Mike
    Last edited by bluearcus (2010-01-08 19:25:56)

  • I used to beable to push firefox with sccm using setup.exe from the command line , this no longer works i want to be able to have a silent install run for all,

    In the past I have always created a deployment with sccm and installed firefox.exe with the /s switch from the command line what is the new switch for silent installation ?

    hello, have you tried it with the full installers that are available at https://www.mozilla.org/firefox/all yet?

  • Python command line arguments

    I am trying to write a python script that will stop gnome-screensaver, run mplayer, then start gnome-screensaver again.  The idea is that this script is called "mplayer" and comes earlier in my PATH than /usr/bin/mplayer so I just type the mplayer command as usual.  Anyway, here is my first attempt at a python script....
    #!/usr/bin/python
    import dbus
    import os
    import sys
    bus = dbus.Bus(dbus.Bus.TYPE_SESSION)
    devobj = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
    dev = dbus.Interface(devobj, "org.gnome.ScreenSaver")
    cookie = dev.Inhibit('MPlayer', 'Watching video')
    os.system("/usr/bin/mplayer TODO_insert_parameters_from_command_line")
    dev.UnInhibit(cookie)
    You might have spotted my problem in the region of the "TODO_insert_parameters_from_command_line".    I know the parameters are stored in sys.argv but how do I join them together into one string?

    phrakture wrote:
    Allan wrote:No more pesky gnome-screensaver in the middle of my anime.
    Erm, doesn't mplayer have an option for this? I thought there was some --disable-screensaver type flag. I know my screen doesn't blank via DPMS when mplayer is running
    From man page:
    -stop-xscreensaver (X11 only)
    Turns off xscreensaver at startup and turns it on again on exit.
    But I find reinventing the wheel for something like this especially helpful .. especially when trying to learn a new language.

  • How to disable Guess Account using Apple Remote Desktop or command line

    The Guess Account is enabled with parental control for 900 iMacs. How can I disable the Guess account with ARD and commandline?

    After searching for a long time.
    The answer is:
    dscl . -create /Users/Guest UserShell /usr/bin/false

  • [RESOLVED] How I pass in my command-line variables disgusts me

    Hello,
    What I'm trying to do is to make an easily configurable script that the user can run with just a few basic command line variables (some of our users are not programmers.)  Now, here's my problem, when it comes to extracting the variables from the command line, it's kind of messy.  Lets say I have the following command:
    $ ./hl_script.sh --config-file=config_abc.txt --rate=5000 --data-dump=/opt/dump_area -v
    "-v" means verbose
    Now, given the weird arrangement of the different types of command line arguments, I'd like to extract the salient parts of the information that I care about.  However, at this moment, all I have is the "cut" command which can easily get into undefined behavior territory should the user misstype an input.  I would love to know how you have done this and what your approach to this problem is.
    This is the code that I have so far:
    # this is where we run the initial test and check if the user entered the
    # help flag in order to see how to properly use this application.
    if [ $# -gt 1 ]; then
    for argument in $@
    do
    if [ $argument = "--help" ]; then
    echo "Here is how you would use this software and the flags that would"
    echo " be useful."
    echo " --help"
    echo " Brings up this display and shows a listing of the options"
    echo " that can be used to better utilize this app."
    echo ""
    echo " --config-file=N"
    echo " Specify the config file that we'd like to use."
    echo ""
    exit 0
    elif [ `cut $argument | cut -d'=' -f 1` = "--config-file" ]; then
    # read-in the config file that we specified and then proceed to set a
    # bunch of environment variables that we need.
    echo "stuff..."
    fi
    done
    fi
    Last edited by publicus (2014-05-13 13:13:43)

    ewaller wrote:
    I know your sample code is Bash, but you may want to consider doing it in Python and using this library
    Here is a simple Python program I wrote that uses the library:
    ewaller$@$odin ~/devel/python 1004 %./sieve.py
    Usage: sieve.py [options] arg
    sieve.py: error: incorrect number of arguments
    ewaller$@$odin ~/devel/python [2]1005 %./sieve.py 10
    2 3 5 7
    ewaller$@$odin ~/devel/python 1006 %./sieve.py --help
    Usage: sieve.py [options] arg
    Find prime numbers using a sieve of Eratosthenes
    Options:
    -h, --help show this help message and exit
    -v, --verbose
    ewaller$@$odin ~/devel/python 1007 %./sieve.py 10 -v
    removing 4
    removing 6
    removing 8
    removing 10
    removing 6
    removing 9
    removing 10
    2 3 5 7
    ewaller$@$odin ~/devel/python 1008 %cat sieve.py
    #! /usr/bin/python
    Implement a sieve of Eratosthenes
    from optparse import OptionParser
    def main():
    #Handle all the command line nonsense. We need a number as an argument
    usage = "%prog [options] arg"
    description = "Find prime numbers using a sieve of Eratosthenes"
    parser = OptionParser(usage=usage,description=description)
    parser.add_option("-v", "--verbose", action="store_true", dest="verbose")
    (options, args) = parser.parse_args()
    if len(args) != 1:
    parser.error("incorrect number of arguments")
    try:
    maxval=eval(args[0])
    except:
    parser.error ("Argument is not a number")
    # Here is the sieve
    a=[x for x in range(0,maxval+1)]
    for count in range(2,int(maxval/2)+1):
    if a[count]:
    for i in range(count*2,maxval+1,count):
    a[i]=0
    if options.verbose:
    print ("removing %i"%i)
    # and report the results
    wrap=0
    for count in range(2,len(a)):
    if a[count]:
    print (count,end=" ")
    wrap += 1
    if (wrap == 5):
    print()
    wrap = 0
    print ()
    if __name__ == "__main__":
    main()
    ewaller$@$odin ~/devel/python 1009 %
    The thing is, I already have some shell code written that works, so I don't want to re-write (and re-test) that.

Maybe you are looking for