Sponsored Content
Top Forums Shell Programming and Scripting Passing awk variables to bash variables Post 302930153 by Scrutinizer on Tuesday 30th of December 2014 06:12:44 PM
Old 12-30-2014
You can't pass awk variables to the shell directly. You could use an intermediate file or a (named) pipe, or you can use command substitution
Code:
TESTO=$(echo "111:222:333" | awk -F: '{print $2}')

or process substitution in bash/ksh93/zsh
Code:
read TESTO < <(echo "111:222:333" | awk -F: '{print $2}')

--
or a regular pipe in ksh and zsh only
Code:
echo "111:222:333" | awk -F: '{print $2}' | read TESTO

(also works with bash 4 with shopt -s lastpipe in a non-interactive shell)

Last edited by Scrutinizer; 12-30-2014 at 07:28 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing Variables to AWK

Does anybody have an explanation for the following: The following scripts runs fine on IRIX64 6.5 but has bugs on Solaris 8. #! /bin/sh echo run only on an SGI machine echo type in linenumber read j echo value read value awk -f rmspass2 level=$value $j'step1.mlf' When the script is... (5 Replies)
Discussion started by: AreaMan
5 Replies

2. Shell Programming and Scripting

Passing Variables to Awk

Hi I have a unix shell script with an awk statement. I would like to print some of the fields of an input file. However, I would like to print them dynamically, ie by passing the literal $1 $3 into the script to define the output. I have tried the following: variable1='$1' awk... (2 Replies)
Discussion started by: Bab00shka
2 Replies

3. Shell Programming and Scripting

Passing awk Variables

I am trying to pass the results from a variable gathered from awk, however when I echo the 'PARSE' and 'SUB', the response is blank. This is my command. awk -F= '/Unit/''{ PARSE=substr($2,1,5) ; SUB=substr($2,1,1) }' inputfile.lst Is this a kind of valid attempt or am I obligated to declare... (3 Replies)
Discussion started by: gozer13
3 Replies

4. Shell Programming and Scripting

Passing variables problem - Bash

I have a following problem: #!/bin/bash NUM=`cat accounts | wc -l`; for i in {1..$NUM} do account=`awk "NR==$i" accounts`; echo -e "\nAccount: $account\n"; sudo ./backup_maildir $account; done "accounts" is a file with regular e-mail addresses, one in each line.... (2 Replies)
Discussion started by: bobanpetrovic
2 Replies

5. Shell Programming and Scripting

Passing variables from bash to php-cli

Hello everyone, I've been looking how to pass variables between bash and php-cli in 1 file. So far i got this: #!/bin/bash echo "This is bash" php << EOF <?php echo "This is php\n"; ?> EOF I would now like to be able to pass a variable declared in the bash to the php. I already... (0 Replies)
Discussion started by: robbee
0 Replies

6. 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

7. 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

8. Shell Programming and Scripting

[BASH] Getting a semi-tailing backslash when passing (escaped) variables to script

Heyas Figured me had a 'typo' in tui-conf-set, i went to fix it. Now, i also figured, it might be nice to have tui-conf-set report (to console, not only exit code) wether it could save the variable to the file or not. This said, I appended this code: (the tui-title and tui-echo lines are... (3 Replies)
Discussion started by: sea
3 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

[Bash] passing variables to executable doesn't work

Bash version 4.4.20 / Ubuntu 16.0.4 Hello, I tried to write a script that gathers some data and passes them to an executable. The executed application answers with an error. The echo output in the script returns correct values. If I copy/paste the last echo command, it get's executed... (2 Replies)
Discussion started by: sushi2k7
2 Replies
print(1)							   User Commands							  print(1)

NAME
print - shell built-in function to output characters to the screen or window SYNOPSIS
ksh print [-Rnprsu [n]] [arg]... ksh93 print [-Renprs] [-f format] [-u fd] [string...] DESCRIPTION
ksh The shell output mechanism. When no options are specified, or when an option followed by ' a - is specified, or when just - is specified, the arguments are printed on standard output as described by echo(1). ksh93 By default, print writes each string operand to standard output and appends a NEWLINE character. Unless, the -r, -R, or -f option is speciifed, each character in each string operand is processed specially as follows: a Alert character.  Backspace character. c Terminate output without appending NEWLINE. The remaining string operands are ignored. E Escape character (ASCII octal 033). f FORM FEED character. NEWLINE character. Tab character. v Vertical tab character. \ Backslash character. x The 8-bit character whose ASCII code is the 1-, 2-, or 3-digit octal number x. OPTIONS
ksh The following options are supported by ksh: -n Suppresses new-line from being added to the output. -r-R Raw mode. Ignore the escape conventions of echo. The -R option prints all subsequent arguments and options other than -n. -p Cause the arguments to be written onto the pipe of the process spawned with |& instead of standard output. -s Cause the arguments to be written onto the history file instead of standard output. -u [ n ] Specify a one digit file descriptor unit number n on which the output is placed. The default is 1. ksh93 The following options are supported by ksh93: -e Unless -f is specified, process sequences in each string operand as described above. This is the default behavior. If both -e and -r are specified, the last one specified is the one that is used. -f format Write the string arguments using the format string format and do not append a NEWLINE. See printf(1) for details on how to specify format. When the -f option is specified and there are more string operands than format specifiers, the format string is reprocessed from the beginning. If there are fewer string operands than format specifiers, then outputting ends at the first unneeded for- mat specifier. -n Do not append a NEWLINE character to the output. -p Write to the current co-process instead of standard output. -r Do not process sequences in each string operand as described above. -R If both -e and -r are specified, the last one specified is the one that is used. -s Write the output as an entry in the shell history file instead of standard output. -u fd Write to file descriptor number fd instead of standard output. The default value is 1. EXIT STATUS
The following exit values are returned: 0 Successful completion. >0 Output file is not open for writing. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
echo(1), ksh(1), ksh93(1), printf(1), attributes(5) SunOS 5.11 27 Mar 2008 print(1)
All times are GMT -4. The time now is 05:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy