Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Passing Shell Variables to an awk command Post 302549634 by Corona688 on Tuesday 23rd of August 2011 01:23:08 PM
Old 08-23-2011
Substitution doesn't happen in single-quotes, no, even if you surround it by double quotes. You have to end the single quotes in an ugly mess like

Code:
$2>="'"$i"'" && $2 <="'"$j"'"

This has an unfortunate side-effect: If any of the string contains valid (or worse, invalid) awk code, it will be considered part of the awk statement and executed. Meaning, someone could feed an " || system("rm -Rf ~/"); into it and get it executed...

It's far cleaner and better and safer to pass them explicitly with -v:

Code:
awk -v VAR1="$VAR1" -v VAR2="$VAR2" '$2>=VAR1 && $2 <=VAR2' ...

This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing shell variables to awk program..

Hello, Can we pass shell variables like $PATH etc. to a awk program part for example, awk ' { fieldValue=$PATH .... }' file (1 Reply)
Discussion started by: Vishnu
1 Replies

2. Shell Programming and Scripting

Passing shell variables to a rsh command

I noticed my script is not passing the value of variable alert to the rsh command. I need some assistance, please. This is a solaris environement. Thanks! :confused: #!/bin/sh echo -n "Alert number:" read alert rsh rhost_name 'egrep $alert /opt/var/log/*.logs' (2 Replies)
Discussion started by: lopus
2 Replies

3. Shell Programming and Scripting

Passing awk variables to shell

Hi. I need to parse file and assign some values to variables, right now i do like below MYHOMEDIR=`awk '/Home/ {print $NF}' output.txt` MYSHELL=`awk '/Shell/ {print $NF}' output.txt` PRGRP=`awk '/Primary/ {print $NF}' output.txt` SECGRP=`awk '/Second/ {print $NF}' output.txt` In this... (10 Replies)
Discussion started by: urello
10 Replies

4. Shell Programming and Scripting

ksh passing to awk multiple dyanamic variables awk -v

Using ksh to call a function which has awk script embedded. It parses a long two element list file, filled with text numbers (I want column 2, beginning no sooner than line 45, that's the only known thing) . It's unknown where to start or end the data collection, dynamic variables will be used. ... (1 Reply)
Discussion started by: highnthemnts
1 Replies

5. Shell Programming and Scripting

Passing variables into AWK

I'm trying to use awk to write new entries to a hosts file if they don't exist. I need to do so depending on the type of system I have. Below is what I have, but it isn't working. awk -v myip1=$IP1 myip2=$IP2 myhost1=$HOST1 myhost2=$HOST2' BEGIN { mqhost1=0; mqhost2=0; stap1=0; stap2=0; } ... (4 Replies)
Discussion started by: Boomn4x4
4 Replies

6. Shell Programming and Scripting

Passing variables to awk

Hi guys, I need to fetch data from logfile between two given dates,i got the below code from our forum.It works perfect,but i need to enter the value dynamically to awk while running. awk '/2012 Jun/{p=1}!/2012 Jul/ && prev~/2012 Jul/ && p{p=0}{prev=$0}p' file i tried the below code,but... (4 Replies)
Discussion started by: mohanalakshmi
4 Replies

7. UNIX for Dummies Questions & Answers

Passing Global Shell variables to awk

Hi All, Iam trying to pass global shell variables and is not working Main script is like below CYEAR=`date +"%y"` CFYEAR=`date +"%Y"` CMONTH=`date +"%m"` if then PMONTH=12 PYEAR=`expr $CYEAR - 1` PFYEAR=`expr $CFYEAR - 1` else PMONTH=`expr... (6 Replies)
Discussion started by: baanprog
6 Replies

8. Shell Programming and Scripting

Passing awk variables to bash variables

Trying to do so echo "111:222:333" |awk -F: '{system("export TESTO=" $2)}'But it doesn't work (2 Replies)
Discussion started by: urello
2 Replies

9. Shell Programming and Scripting

awk - passing variables in and out

Am looking to pass some Linux environment variables into AWK , can I simply use the -v option ? awk -F: -v AHOME=$HOME '{ if {rm AHOME/file.txt a=2 } }' config.txt ... (4 Replies)
Discussion started by: alldbest
4 Replies

10. Shell Programming and Scripting

Awk: passing shell variables through and extracting text

Hello, new to the forums and to awk. Glad to be here. :o I want to pass two shell (#!/bin/sh) variables through to awk and use them. They will determine where to start and stop text extraction. The code with the variables hard-coded in awk works fine; the same code, but with the shell... (7 Replies)
Discussion started by: bedtime
7 Replies
Perl::Critic::Policy::ValuesAndExpressions::RequireInterUsertContrPerl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars(3pm)

NAME
Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars - Warns that you might have used single quotes when you really wanted double-quotes. AFFILIATION
This Policy is part of the core Perl::Critic distribution. DESCRIPTION
This policy warns you if you use single-quotes or "q//" with a string that has unescaped metacharacters that may need interpolation. Its hard to know for sure if a string really should be interpolated without looking into the symbol table. This policy just makes an educated guess by looking for metacharacters and sigils which usually indicate that the string should be interpolated. Exceptions o Variable names to "use vars": use vars '$x'; # ok use vars ('$y', '$z'); # ok use vars qw< $a $b >; # ok o Things that look like e-mail addresses: print 'john@foo.com'; # ok $address = 'suzy.bar@baz.net'; # ok CONFIGURATION
The "rcs_keywords" option allows you to stop this policy from complaining about things that look like RCS variables, for example, in deriving values for $VERSION variables. For example, if you've got code like our ($VERSION) = (q<$Revision: 4106 $> =~ m/(d+)/mx); You can specify [ValuesAndExpressions::RequireInterpolationOfMetachars] rcs_keywords = Revision in your .perlcriticrc to provide an exemption. NOTES
Perl's own "warnings" pragma also warns you about this. SEE ALSO
Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals AUTHOR
Jeffrey Ryan Thalhammer <jeff@imaginative-software.com> COPYRIGHT
Copyright (c) 2005-2011 Imaginative Software Systems. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.14.2 Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars(3pm)
All times are GMT -4. The time now is 10:44 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy