Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Scripts dont give a consistent output.. Post 302981434 by bakunin on Tuesday 13th of September 2016 03:30:17 AM
Old 09-13-2016
Quote:
Originally Posted by wisecracker
However the 'IFS' reason is new to me and would like to know more so thanks a lot. Off to look...
The "internal field separator" is a shell variable which tells the shell how separate "words" (=input fields) are separated from each other. Consider this command:

Code:
command arg1 arg2 arg3

Somehow the shell has to know why this is to parse as a call to "command" with three different arguments, "arg1", "arg2" and "arg3". The reason is that in fact the command looks (for the shells parser) like this:

Code:
<string1><IFS><string2><IFS><string3><IFS><string4>

and because the default value for IFS is a space the shell sees four strings, of which the first is a command and the others are arguments. This is why you have to quote "words" (commands, arguments) containing spaces: quotes turn off the mechanism inside them.

Still you can redefine this IFS to split "words" at other boundaries than the usual spaces. Consider the following input file:

Code:
word1 word2, word3 word4, word5 word6 
bla,1 bla,2 bla,3 bla,4 bla,5 bla,6

Now execute the following command (ksh, change "print -" to "echo" for bash):
Code:
while read w1 w2 w3 w4 w5 w6 ; do
     print - "w1: \"$w1\""
     print - "w2: \"$w2\""
     print - "w3: \"$w3\""
     print - "w4: \"$w4\""
     print - "w5: \"$w5\""
     print - "w6: \"$w6\""
done < ifs

Now change the while-line to:
Code:
while IFS=, read w1 w2 w3 w4 w5 w6 ; do

and run again to see the difference.

I hope this helps.

bakunin
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Routine doesn't give output when executed in crontab

I have a script running in the crontab that gets data from a database every hour. Now I would like to execute a fortran routine to process the data in some way, after getting it and saving it locally. I have added the following commands to my script: set convert =... (1 Reply)
Discussion started by: SharkM
1 Replies

2. Shell Programming and Scripting

Compare 2 files and give uniq output

Hi , Just to find out a way to compare these 2 files and give unique output. For eg: 1.txt contains 1 2 3 4 5 6 -------------------------------------- 2.txt contains 1 2 6 8 (1 Reply)
Discussion started by: rauphelhunter
1 Replies

3. Shell Programming and Scripting

check for the value of one particular field and give output in a different file

hi i need to check for the value of one particular field : in the output file. the file may contain many such records as below how to ???? *** Throttled with base name + key params! : : -518594328 : les.alarm.LBS12005 : les.alarm.LBS12005 : les : lessrv1 : les : 2328 : 0... (7 Replies)
Discussion started by: aemunathan
7 Replies

4. Solaris

metadevice submirrors 0 and 1 not consistent

At a new job, I've inherited a handful of Solaris 10 SunFire V240 servers. I noticed that the metadevices are not consistent, in a way that I've not seen before.... internal mirrored disks: metadevice d60 has c1t0d0s6 as submirror 0 (d61) and c1t1d0s6 as submirror 1 (d62) metadevice... (1 Reply)
Discussion started by: Max Power
1 Replies

5. Shell Programming and Scripting

give some color to a word on echo output

Hi Supposed this text output: How can I show $HOSTNAME in other color than blank? :-) KSH on AIX (4 Replies)
Discussion started by: iga3725
4 Replies

6. Shell Programming and Scripting

How to give a variable output name in a shell script inside a for loop

Hi all I run my program prog.c in the following way : $ ./prog 1 > output.txt where 1 is a user defined initial value used by the program. But now I want to run it for many a thousand initial values, 1-1000, and store all the outputs in different files. Like $ ./prog 1... (1 Reply)
Discussion started by: alice06
1 Replies

7. Shell Programming and Scripting

Script to give plsql procedure output

##Execute the EDW_MEM_KEY_UPDATE procedure ext_sta=`sqlplus -s ${Connstr} <<eof set heading off; set pagesize 0; set feedback off; set serveroutput on; execute EDW_MEM_KEY_UPDATE ; quit; here` vara="ORA-" var=`echo $ext_sta | grep -c $vara ` Hi All, above is a part of my unix... (7 Replies)
Discussion started by: iamnoone
7 Replies

8. Shell Programming and Scripting

How to give full access to output files created by .sh script run via crontab?

Hi Expert, I have a .sh script in my home/new_dir/script.sh This script creates number of output files at home/new_dir/email, home/new_dir/logs dir. I am running this script using crontab (owner root). Now this output files are getting created with rw-r----- 1 root root So if i... (2 Replies)
Discussion started by: Jeet1982
2 Replies

9. Shell Programming and Scripting

Nohup not give expected output. Non-stop running process

Hello, I am trying to make a bash script, I tested nohup but it did not help me. My code is: ffmpeg -i $input_url -c:v copy -c:a copy -listen 1 -f mpegts http://localhost:port/live/test When I open it in VLC, it starts feeding my screen and I see bitrate values. When I stop watching it,... (4 Replies)
Discussion started by: baris35
4 Replies
AUTOCONF(1)						      General Commands Manual						       AUTOCONF(1)

NAME
autoconf2.13 - creates scripts to configure source code packages using templates SYNOPSIS
autoconf2.13 [ --help | -h ] [ --localdir=dir | -l dir ] [ --macrodir=dir | -m dir ] [ --version ] DESCRIPTION
To create configure from configure.in, run the autoconf2.13 program with no arguments. autoconf2.13 processes configure.in with the m4 macro processor, using the Autoconf macros. If you give autoconf2.13 an argument, it reads that file instead of configure.in and writes the configuration script to the standard output instead of to configure. If you give autoconf2.13 the argument -, it reads the standard input instead of configure.in and writes the configuration script on the standard output. The Autoconf macros are defined in several files. Some of the files are distributed with Autoconf; autoconf2.13 reads them first. Then it looks for the optional file acsite.m4 in the directory that contains the distributed Autoconf macro files, and for the optional file aclo- cal.m4 in the current directory. Those files can contain your site's or the package's own Autoconf macro definitions. If a macro is defined in more than one of the files that autoconf2.13 reads, the last definition it reads overrides the earlier ones. autoconf2.13 accepts the following options: --help -h Print a summary of the command line options and exit. --localdir=DIR -l DIR Look for the package file aclocal.m4 in directory DIR instead of in the current directory. --macrodir=DIR -m DIR Look for the installed macro files in directory DIR. You can also set the AC_MACRODIR environment variable to a directory; this option overrides the environment variable. --version Print the version number of Autoconf and exit. SEE ALSO
autoheader2.13(1), autoreconf2.13(1), autoscan2.13(1), autoupdate2.13(1), ifnames2.13(1) AUTHORS
David MacKenzie, with help from Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor, Roland McGrath, Noah Friedman, David D. Zuhn, and many others. This manpage written by Ben Pfaff <pfaffben@debian.org> for the Debian GNU/Linux autoconf2.13 package. Autoconf AUTOCONF(1)
All times are GMT -4. The time now is 03:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy