Sponsored Content
Top Forums Shell Programming and Scripting Please explain read in a while loop Post 95494 by mahendramahendr on Wednesday 11th of January 2006 04:30:12 PM
Old 01-11-2006
Code:
 while read line
do
read test?"Enter a Value:"
done < testfile


In the above code, in the first line, it says read line.. it reads the first line from the testfile and puts it into the variable called line, again when you say read test, it actually reads the second line from testfile and puts it into the variable test.. it won't take the input from the keyboard because you have given the input as testfile by specifying the "<".

use this code

#!/usr/bin/ksh

IFS="
"

for line in $(< testfile)
do
echo $line
echo "Enter value :"
read a
done

Last edited by mahendramahendr; 01-11-2006 at 05:44 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need Help : while read loop

hi all, Can you please help me with this issue ? while ####infinite loop do cat file1 |while read var1 var2 do func1 $var1 $var2 done cat file2 | while read var11 var22 do func2 $var11 $var22 done done func1 is called till all the values are read... (2 Replies)
Discussion started by: Navatha
2 Replies

2. Shell Programming and Scripting

read line in a for loop

Hi All, How can we use read line using the index value of a FOR loop? eg: pt_mstr,pt_status,8 pt_mstr,pt_buyer,8 pt_mstr,pt_sfty_stk,8 pt_mstr,pt_ord_pol,3 pt_mstr,pt_capacity,8 pt_mstr,pt_plan_ord,3 pt_mstr,pt_ord_mult,8 From this file i want to read the line2, 3 and 4 only using a FOR... (3 Replies)
Discussion started by: balajim
3 Replies

3. UNIX for Dummies Questions & Answers

if elif loop with read

I am trying to setup an if, elif statement that is dependant on a variable. If the user does not enter a valid option I would like it to prompt them again and start the loop over. Here is what I have so far: echo -n "enter variable (a, b, or c): " read freq if ; then echo "a" elif ;... (2 Replies)
Discussion started by: BStanley346
2 Replies

4. Shell Programming and Scripting

Need help with for loop with while read

Hello, The code below pulls printer information from a three-column file (set by the ${MULTIFILE} variable at the end), that has the printer queue name, IP, and type of printer. It is supposed to use this info to add the printers in the list to one, or more servers . The input file... (3 Replies)
Discussion started by: LinuxRacr
3 Replies

5. Shell Programming and Scripting

until loop and read

Hi guys what I wanna do is to create a script where can I input several times a file - assume with read function that will be inserted into a temp. file for further processing. When I press q I want that the loop will stop and continue in my script I typed this but the options q is not working... (6 Replies)
Discussion started by: kl1ngac1k
6 Replies

6. Filesystems, Disks and Memory

Please explain how to read df -k

What I'm trying to find out is how many gb do we actually have free, how do you calculate that with the following output from the df -k command. Filesystem 1024-blocks Free %Used Iused %Iused Mounted on /dev/prod001 46137344 9200468 81% 26166 1% ... (6 Replies)
Discussion started by: NycUnxer
6 Replies

7. UNIX for Dummies Questions & Answers

Read statement within while read loop

hi, this is my script #!/bin/ksh cat temp_file.dat | while read line do read test if ]; then break else echo "ERROR" fi done when i execute this code , the script does wait for the user input . it directly prints "ERROR" and terminates after the no. of times as there... (3 Replies)
Discussion started by: siva1612
3 Replies

8. Shell Programming and Scripting

explain while loop in ksh shell script

#!/bin/ksh log=ABCl log=EFG log=HIJ i=0 while <------ what is the meaning of ($i - lt 3) do print ${log} (( i=i+1 )) done (1 Reply)
Discussion started by: Bperl1967
1 Replies

9. Shell Programming and Scripting

Help with while read loop

Hey all, Tried searching the forums but my search-fu may not be strong today; please feel free to redirect me if I have simply missed a post that would be helpful! Trying to create a while loop that reads a list of configuration files, checks for a line that starts with "SOME_CMD" and ends... (4 Replies)
Discussion started by: jdwyer
4 Replies

10. Shell Programming and Scripting

Please explain AWK Fibonnaci for loop

Referring to this: #!/bin/awk -f BEGIN{ for(i=0;i<=10;i++) { if (i <=1 ) { x=0; y=1; print i; } else { z=x+y; print z; x=y; y=z; } } (3 Replies)
Discussion started by: p1ne
3 Replies
EXTRACT(3)								 1								EXTRACT(3)

extract - Import variables into the current symbol table from an array

SYNOPSIS
int extract NULL (array &$array, [int $flags = EXTR_OVERWRITE], [string $prefix]) DESCRIPTION
Import variables from an array into the current symbol table. Checks each key to see whether it has a valid variable name. It also checks for collisions with existing variables in the symbol table. PARAMETERS
o $array - An associative array. This function treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to $flags and $prefix parameters. You must use an associative array; a numerically indexed array will not produce results unless you use EXTR_PREFIX_ALL or EXTR_PREFIX_INVALID. o $flags - The way invalid/numeric keys and collisions are treated is determined by the extraction $flags. It can be one of the following values: o EXTR_OVERWRITE - If there is a collision, overwrite the existing variable. o EXTR_SKIP - If there is a collision, don't overwrite the existing variable. o EXTR_PREFIX_SAME -If there is a collision, prefix the variable name with $prefix. o EXTR_PREFIX_ALL - Prefix all variable names with $prefix. o EXTR_PREFIX_INVALID - Only prefix invalid/numeric variable names with $prefix. o EXTR_IF_EXISTS - Only overwrite the variable if it already exists in the current symbol table, otherwise do nothing. This is useful for defining a list of valid variables and then extracting only those variables you have defined out of $_REQUEST, for example. o EXTR_PREFIX_IF_EXISTS - Only create prefixed variable names if the non-prefixed version of the same variable exists in the current symbol table. o EXTR_REFS - Extracts variables as references. This effectively means that the values of the imported variables are still referencing the values of the $array parameter. You can use this flag on its own or combine it with any other flag by OR'ing the $flags. If $flags is not specified, it is assumed to be EXTR_OVERWRITE. o $prefix - Note that $prefix is only required if $flags is EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS. If the prefixed result is not a valid variable name, it is not imported into the symbol table. Prefixes are automatically sepa- rated from the array key by an underscore character. RETURN VALUES
Returns the number of variables successfully imported into the symbol table. EXAMPLES
Example #1 extract(3) example A possible use for extract(3) is to import into the symbol table variables contained in an associative array returned by wddx_dese- rialize(3). <?php /* Suppose that $var_array is an array returned from wddx_deserialize */ $size = "large"; $var_array = array("color" => "blue", "size" => "medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size "; ?> The above example will output: blue, large, sphere, medium The $size wasn't overwritten because we specified EXTR_PREFIX_SAME, which resulted in $wddx_size being created. If EXTR_SKIP was specified, then $wddx_size wouldn't even have been created. EXTR_OVERWRITE would have caused $size to have value "medium", and EXTR_PREFIX_ALL would result in new variables being named $wddx_color, $wddx_size, and $wddx_shape. NOTES
Warning Do not use extract(3) on untrusted data, like user input (i.e. $_GET, $_FILES, etc.). If you do, for example if you want to run old code that relies on register_globals temporarily, make sure you use one of the non-overwriting $flags values such as EXTR_SKIP and be aware that you should extract in the same order that's defined in variables_order within the php.ini. Note If you have register_globals turned on and you use extract(3) on $_FILES and specify EXTR_SKIP, you may be surprised at the results. Warning This is not recommended practice and is only documented here for completeness. The use of register_globals is deprecated and calling extract(3) on untrusted data such as $_FILES is, as noted above, a potential security risk. If you encounter this issue, it means that you are using at least two poor coding practices. <?php /* Suppose that $testfile is the name of a file upload input and that register_globals is turned on. */ var_dump($testfile); extract($_FILES, EXTR_SKIP); var_dump($testfile); var_dump($testfile['tmp_name']); ?> You might expect to see something like the following: string(14) "/tmp/phpgCCPX8" array(5) { ["name"]=> string(10) "somefile.txt" ["type"]=> string(24) "application/octet-stream" ["tmp_name"]=> string(14) "/tmp/phpgCCPX8" ["error"]=> int(0) ["size"]=> int(4208) } string(14) "/tmp/phpgCCPX8" However, you would instead see something like this: string(14) "/tmp/phpgCCPX8" string(14) "/tmp/phpgCCPX8" string(1) "/" This is due to the fact that since register_globals is turned on, $testfile already exists in the global scope when extract(3) is called. And since EXTR_SKIP is specified, $testfile is not overwritten with the contents of the $_FILES array so $testfile remains a string. Because strings may be accessed using array syntax and the non-numeric string tmp_name is interpreted as 0, PHP sees $test- file['tmp_name'] as $testfile[0]. SEE ALSO
compact(3), list(3). PHP Documentation Group EXTRACT(3)
All times are GMT -4. The time now is 04:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy