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