AWK Script and Commandline difference


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting AWK Script and Commandline difference
# 8  
Old 06-29-2011
Quote:
Code:
$ STR="hello 'world'"
$ awk 'BEGIN { print "'$STR'" }'

But i wrote exactly about this! Put shell variables inside double quotes:

Code:
$ STR="hello 'world'"
app@kf3sv ~
$ awk 'BEGIN { print "'"$STR"'" }'
hello 'world'

Code:
$ perl -e 'print "'"$VAR"'", "\n";'
this will barf'

And yes - threre is not an universal "safe" way to embed shell variables. But I believe there is not any universal way to write "safe" shell scripts. Shell is a command language, you know - for those who write and execute commands.

And I repeat one more:
The inner double quotes are really not needed here but this is a good habit.
# 9  
Old 06-29-2011
Quote:
Originally Posted by yazu
But i wrote exactly about this! Put shell variables inside double quotes:

Code:
$ STR="hello 'world'"
app@kf3sv ~
$ awk 'BEGIN { print "'"$STR"'" }'
hello 'world'

Okay, how about:

Code:
$ STR="hello \"world\""
$ awk 'BEGIN { print "'"$STR"'" }'
hello
$ STR='"; system("/sbin/poweroff") ; print "'
$ awk 'BEGIN { print "'"$STR"'" }'

poweroff: must be superuser.

$ awk -v VAR="$STR" 'BEGIN { print VAR }'
"; system("/sbin/poweroff") ; print "
$

Extra quotes don't protect you no matter how many of them you have. They do leave you wide open to bizzare errors and intentional abuse. The -v syntax eliminates all these problems.
Quote:
And yes - threre is not an universal "safe" way to embed shell variables.
Your method isn't merely imperfect, it's downright unsafe.
# 10  
Old 06-29-2011
Well, enough. Just only - it is not my method - it's common practice to embed shell variables in perl, sed, sql etc.
# 11  
Old 06-29-2011
If it really is "common practice" that's alarming.

I don't understand your defensiveness. There may be situations where substituting strings into the program text itself is the only option(I already demonstrated how to avoid that in perl with shift), but this topic, about awk, isn't one of them.

Last edited by Corona688; 06-29-2011 at 01:39 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to put a difference calculation in my awk script ?

Hello, For my CGI, I have this script : #!/bin/bash echo "Content-type: text/html" echo "" echo ' <html> <head> <meta http-equiv="Content-Type" content="test/html"; charset=UTF-8"> <title> CLF MONITORING </title> <h1> FRAME... (4 Replies)
Discussion started by: Tim2424
4 Replies

2. Shell Programming and Scripting

awk to calculate difference of split and sum the difference

In the awk I am trying to subtract the difference $3-$2 of each matching $4 before the first _ (underscore) and print that value in $13. I think the awk will do that, but added comments. What I am not sure off is how to add a line or lines that will add sum each matching $13 value and put it in... (2 Replies)
Discussion started by: cmccabe
2 Replies

3. Shell Programming and Scripting

awk script to find time difference between HTTP PUT and HTTP DELETE requests in access.log

Hi, I'm trying to write a script to determine the time gap between HTTP PUT and HTTP DELETE requests in the HTTP Servers access log. Normally client will do HTTP PUT to push content e.g. file_1.txt and 21 seconds later it will do HTTP DELETE, but sometimes the time varies causing some issues... (3 Replies)
Discussion started by: Juha
3 Replies

4. Shell Programming and Scripting

Script executed by Cron or commandline

Hello all, I have a question regarding the difference betwen cron and command line. What I would like to do is to print a statement into a logfile if a script has been executed from cron or from command line. It should be as: #!/bin/bash if <Check if this script has been... (3 Replies)
Discussion started by: API
3 Replies

5. Shell Programming and Scripting

sed commands success / fail from commandline vs ksh script

solaris 5.10 Generic_138888-03 sun4v sparc SUNW,Sun-Fire-T200 I need a sed command that tests true when presented with lines that contain either forward and backslash. input file: c:/myFile.txt c:\yourFile.txt It doesn't appear that sed (in my environment anyway) supports... (4 Replies)
Discussion started by: msutfin
4 Replies

6. UNIX for Dummies Questions & Answers

Shell script - getting Time difference using awk

Hi..I have the data in a file like in this format, and I need the output time difference in seconds by using awk command. Start date/time and end date/time given in column 2,3 & 4,5. Please assist how to write shell script. File1.txt JOB1 10/09/2013 17:42:16 10/09/2013 17:43:46 SU 6202685/1... (4 Replies)
Discussion started by: mprithvi
4 Replies

7. Shell Programming and Scripting

How to print and append output of nawk script in commandline and as well into a file?

Hi All, I am working on nawk script, has the small function which prints the output on the screen.Am trying to print/append the same output in a file. Basically nawk script should print the output on the console/screen and as well it should write/append the same result to a file. script :... (3 Replies)
Discussion started by: Optimus81
3 Replies

8. Shell Programming and Scripting

Handling values with space while passing commandline argument from wrapper script in KSH

Hi there, I have a wapper script which passes the argument from command prompt to inner script.. It works fine as long as the argument containing single word. But when value contains multiple word with space, not working as expected. I tried my best, couldn't find the reason. Gurus, pls.... (2 Replies)
Discussion started by: kans
2 Replies

9. Shell Programming and Scripting

How to determine if a script (perl) was called from a CRON job or commandline

Hi, Is there a way to determine if a Script is called from a CRON job or from a commandline Gerry. (2 Replies)
Discussion started by: jerryMcguire
2 Replies

10. Shell Programming and Scripting

script to go to a different dir to run a commandline prompt in that dir

Hi, I need to know how I'll be able to write a script that can goto a different dir where I don't have access to read,write and execute and also to run a commandline prompt in that dir with one file whose path has to be specified in that command. Will I be able to do this? Any ideas or... (2 Replies)
Discussion started by: ann_124
2 Replies
Login or Register to Ask a Question