I've been submitting the variable assignments as test jobs using SGE,
possibly there is something else in the script I am submitting that is
causing me to need the escapes. I will try dunping the env next.
Thanks for your time looking at this, I appreciate it!
Sara
On Apr 16, 2012, at 11:00 PM, Rayson Ho wrote:
SGE shouldn't fool around with the env. var. in your script. IIRC, SGE
looks for "#$" in the script. See -C prefix_string:
http://gridscheduler.sourceforge.net/htmlman/htmlman1/qsub.html
You can always submit test jobs and see how SGE handles them. You can
run a job that does nothing except dumping the env using "env" or
"printenv".
(I'm on the East Coast and it's 2am... which means I am not going to
stay up much longer.)
Rayson
On Tue, Apr 17, 2012 at 1:50 AM, Sara Rolfe
<[email protected]> wrote:
Right, so if this was a simple bash script I would not need the
escape. But
my assumption was that when SGE interpreted a script the escape was
needed
pass the commands through correctly. However from other examples
I've seen,
it doesn't look like other SGE users need to do this, so I'm not
clear on
why this seems necessary in my case.
Thanks,
Sara
On Apr 16, 2012, at 10:43 PM, Rayson Ho wrote:
I'm also not a scripting expert... but in general, if you escape
the $
symbol, it means that you don't want the shell to treat it as an env
var. Eg:
#!/bin/bash
export ONE=1
echo $ONE
echo \$ONE
Output:
1
$ONE
Rayson
On Tue, Apr 17, 2012 at 1:37 AM, Sara Rolfe <[email protected]
>
wrote:
I am new to both scripting and SGE, so I don't understand why,
but I need
to
escape all the variables in my script. For example,
awk "NR==$SGE_TASK_ID" /myPath/fileList.txt
produces a blank output, but if I escape the env variable, like:
awk "NR==\$SGE_TASK_ID" /myPath/fileList.txt
then I get the correct line from the text file. The problem is
when I
try
to assign this output to a variable. I still need to use the
escape, but
I
think it's not being passed correctly.
Thanks,
Sara
On Apr 16, 2012, at 10:27 PM, Rayson Ho wrote:
It works for bash too... except with the "escape" one you are
using:
#!/bin/bash
export SGE_TASK_ID=2
line2=`awk -v task_id=$SGE_TASK_ID 'NR==task_id' "/tmp/
fileList.txt"`
echo $line2
line2=$(awk -v "task_id=$SGE_TASK_ID" 'NR==task_id' "/tmp/
fileList.txt" )
echo $line2
line2=$(awk -v "task_id=$SGE_TASK_ID" 'NR==task_id' "/tmp/
fileList.txt" )
echo \$line2
[rayson@computer source]$ ./sh
L2
L2
$line2
Why are you doing "echo \$line2"?
Rayson
On Tue, Apr 17, 2012 at 1:21 AM, Sara Rolfe <[email protected]
>
wrote:
I'm using bash.
Thanks,
Sara
On Apr 16, 2012, at 10:20 PM, Rayson Ho wrote:
What shell are you using??
Rayson
On Tue, Apr 17, 2012 at 1:15 AM, Sara Rolfe <[email protected]
>
wrote:
Hi Rayson,
Thanks for your reply. I have tried using -v to pass variables
to awk,
but
it is not working correctly. I think it's because my script
requires all
variables to be escaped and I don't know how to pass the escape
symbol
correctly.
line2=$(awk -v "task_id=$SGE_TASK_ID" 'NR==task_id'
"/myPath/fileList.txt" )
echo \$line2
has a blank output, but so does
line2=$(awk -v "task_id=\$SGE_TASK_ID" 'NR==task_id'
"/myPath/fileList.txt"
)
echo \$line2
Can you give me any insight into passing the escape sign or why I
am
needing
to escape all the variables in my script?
Thanks,
Sara
On Apr 16, 2012, at 9:13 PM, Rayson Ho wrote:
line2=$(awk -v "task_id=$SGE_TASK_ID" 'NR==task_id' "/tmp/
fileList.txt" )
_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users