Home > Community > Forums > Custom IC SKILL > A question about parameter in skill.

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 A question about parameter in skill. 

Last post Fri, Mar 1 2013 10:14 AM by Andrew Beckett. 4 replies.
Started by layes 26 Feb 2013 06:09 PM. Topic has 4 replies and 1054 views
Page 1 of 1 (5 items)
Sort Posts:
  • Tue, Feb 26 2013 6:09 PM

    • layes
    • Not Ranked
    • Joined on Tue, Jan 8 2013
    • Posts 5
    • Points 115
    A question about parameter in skill. Reply
    Hi Andrew,

    I have a question about parameter in skill.

    When I using Csh I can use $1 $2 as input parameter in script.
    How can I pass it to skill,if I include some skill script in my Csh script?
    thanks.  
    Filed under:
    • Post Points: 20
  • Wed, Feb 27 2013 11:39 AM

    • theopaone
    • Top 75 Contributor
    • Joined on Tue, Feb 12 2013
    • Cedar Park, TX
    • Posts 103
    • Points 1,540
    Re: A question about parameter in skill. Reply

    You cannot directly evaluate a SKILL function in the shell. Put the SKILL function name and its call into a file you pass to Virtuoso. You have to start Virtuoso and use the -replay argument. The function should also execute exit() to close the Virtuoso session:

    echo "load( \"mySkillFunction.il\" ) mySkillFunction( $1 $2 ) exit()" > runMySkillFunc.il

    virtuoso -nograph -replay runMySkillFunc.il

    Ted

    • Post Points: 20
  • Wed, Feb 27 2013 5:18 PM

    • layes
    • Not Ranked
    • Joined on Tue, Jan 8 2013
    • Posts 5
    • Points 115
    Re: A question about parameter in skill. Reply

    let me explain my question in detail:

    I have a script "ab.csh"

    #!/bin/csh

    ls $1>celllist

    icfb -nograph -replay ab.il

     

    I have a skill script "ab.il"

    procedure(ab(lib1 lib2)

    ... ...

    )

    ab("$1" "$2")

    exit()

     

    I run in c_shell commands as below:

    ab.csh analib diglib

    It seems that this does not work,could you help me about this ,thanks. 

     

    • Post Points: 20
  • Thu, Feb 28 2013 7:51 PM

    • theopaone
    • Top 75 Contributor
    • Joined on Tue, Feb 12 2013
    • Cedar Park, TX
    • Posts 103
    • Points 1,540
    Re: A question about parameter in skill. Reply

     $1 and $2 do not have values inside icfb. You have to create a new SKILL function with the values from $1 and $2 in the function call. That is why I included the echo statement above, the $1 and $2 values are put into the function runMySkillFunc.il and when it is loaded the function is executed with the values.

    In addition, the replay file does not automatically load the file ab.il. That is why I had the load statement in my echo output above.

    For your problem you need to create a file, we will call it runab.il. It should contain the following statements which could all be on the same line:

    load("ab.il")
    ab( "analib" "diglib" )
    exit()

    ; Ted

    • Post Points: 20
  • Fri, Mar 1 2013 10:14 AM

    Re: A question about parameter in skill. Reply

    The other thing you could do is to set an environment variable containing the arguments inside your script:

    #!/bin/sh
    export ARGS="$0 $*"
    icfb -nograph -restore ab.il

    And then in the SKILL code (ab.il)

    args=listToVector(parseString(getShellEnvVar("ARGS")||""))
    printf("The script was called %s\n" args[0])
    printf("The arguments were '%s' and '%s'\n" args[1] args[2])
    exit()

    If I then do "runScript hello world" I get:

    The script was called runScript
    The arguments were 'hello' and 'world'

    Regards,

    Andrew.

    • Post Points: 5
Page 1 of 1 (5 items)
Sort Posts:
Started by layes at 26 Feb 2013 06:09 PM. Topic has 4 replies.