Sponsored Content
Top Forums Shell Programming and Scripting while loops and variables under bash Post 302605000 by m69w on Tuesday 6th of March 2012 12:06:00 PM
Old 03-06-2012
while loops and variables under bash

Hi,

This is probably going to be very simple but i came across something i can't quite explain. Here is the situation: i have a list of files, which i'd like to process one by one (get the size, make some tests, whatever) and generate some statistics using different variables.

Something similar to this:

Code:
u=0
ls|while read f; do
#until [ $u -gt 5 ]; do
#for f in `ls `; do
echo inside u=$u
let "u+=1"
done

echo outside u=$u

And here are the results (there are 3 files in the current directory):

Quote:
inside u=0
inside u=1
inside u=2
outside u=0
So basically the variable u appears to get re-initialised somehow.

Using until or a classic for loop u keeps its value after the loop is executed, like this:

Quote:
inside u=0
inside u=1
inside u=2
inside u=3
inside u=4
inside u=5
outside u=6
So what's the deal ? That's under bash. Ksh gives similar results to the other loops.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Variables being worked on inside of loops

I have a while read loop that reads values inside of a file and then performs an expr operation on each. Everything works fine, the way it's supposed to but, once the loop is finished, I can not access the variable that I used inside of the loop (but that variable was created outside of the... (7 Replies)
Discussion started by: yongho
7 Replies

2. Shell Programming and Scripting

scripting headache... loops & variables

Surely there's an easier way to do this, lets see if anyone knows! I am new to scripting so go easy on me! I have the following script and at the moment it doesn't work and I believe the problem is that I am using a while loop within a while loop. When I run the script using sh -x I can see... (6 Replies)
Discussion started by: StevePace
6 Replies

3. Shell Programming and Scripting

arrays and while loops in bash

hi guys, i have an array called ARRAY which has elements in it... i am trying to assign elements of ARRAY to master_array.. i get a =: command not found error.. i=0 while do ${master_array}=${ARRAY} ((i++)) done is there something i am missing? (4 Replies)
Discussion started by: npatwardhan
4 Replies

4. Shell Programming and Scripting

[bash] IF is eating my loops

Hi! Could someone explain me why the below code is printing the contents of IF block 5 times instead of 0? #!/bin/bash VAR1="something" VAR2="something" for((i=0;i<10;i++)) do if(($VAR1=~$VAR2)) then echo VAR1: $VAR1 echo... (3 Replies)
Discussion started by: machinogodzilla
3 Replies

5. Shell Programming and Scripting

For loops with multiple variables

Hi script gurus. I have need to know how to use for loop with multiple variable. Basically lets take for example /etc/passwd file has following entries The above cat command will basically first greps the real users that have email addresses then converts ':' to '+' then using cut... (4 Replies)
Discussion started by: sparcguy
4 Replies

6. Homework & Coursework Questions

Bash if and loops help

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Your shell script should continue to execute until the user selects option 4 2. Relevant commands, code,... (2 Replies)
Discussion started by: boyboy1212
2 Replies

7. Shell Programming and Scripting

bash loops

hello i'm writing a script and I want to use a for loop inside a while loop as following: while read line; do echo $line for i in $vrm; do echo $i done done < './contacts' when i use just the while loop it prints the lines from file ./contacts just... (13 Replies)
Discussion started by: vlm
13 Replies

8. Shell Programming and Scripting

Two variables in output file name nested for loops

I am trying to use two nested for loops to process some files and then create a new file using both variables in the output file name. I have several files in this naming style: S1_L3_all_R1.fastq S1_L3_all_R2.fastq S1_L4_all_R1.fastq S1_L4_all_R2.fastq . . S1_L8_all_R1.fastq... (3 Replies)
Discussion started by: aminards
3 Replies

9. Shell Programming and Scripting

Unset variables in shell when it running two different loops

I have a script to start/stop/restart the tomcat application. When we run the script first time i.e stop/start it set all env variables(DISTRIB_ID,NAME,TOMCAT_CFG,....etc),but when we restart the tomcat it is running in the same shell.....I need to set the variables when i restart the tomcat(in the... (1 Reply)
Discussion started by: praveen265
1 Replies

10. Shell Programming and Scripting

Correlation Between 3 Different Loops using Bash

I have 3 loops that I use to determine the permission level of AWS user accounts. This array lists the AWS policy ARN (Amazon Resource Name): for ((policy_index=0;policy_index<${#aws_managed_policies};++policy_index)); do aws_policy_arn="${aws_managed_policies}" ... (1 Reply)
Discussion started by: bluethundr
1 Replies
DEVSCRIPTS.CONF(5)						File Formats Manual						DEVSCRIPTS.CONF(5)

NAME
devscripts.conf - configuration file for the devscripts package DESCRIPTION
The devscripts package provides a collection of scripts which may be of use to Debian developers and others wishing to build Debian pack- ages. Many of these have options which can be configured on a system-wide and per-user basis. Every script in the devscripts package which makes use of values from these configuration files describes the specific settings recognised in its own manpage. (For a list of the scripts, either see /usr/share/doc/devscripts/README.gz or look at the output of dpkg -L devscripts | grep /usr/bin.) The two configuration files are /etc/devscripts.conf for system-wide defaults and ~/.devscripts for per-user settings. They are written with bash(1) syntax, but should only have comments and simple variable assignments in them; they are both sourced (if present) by many of the devscripts scripts. Variables corresponding to simple switches should have one of the values yes and no; any other setting is regarded as equivalent to the default setting. All variable names are written in uppercase, and begin with the script name. Package-wide variables begin with "DEVSCRIPTS", and are listed below, as well as in the relevant manpages. For a list of all of the available options variables, along with their default settings, see the example configuration file /usr/share/doc/devscripts/devscripts.conf.ex. This is copied to /etc/devscripts.conf when the devscripts package is first installed. Information about configuration options introduced in newer versions of the package will be appended to /etc/devscripts.conf when the pack- age is upgraded. Every script which reads the configuration files can be forced to ignore them by using --no-conf as the first command-line option. PACKAGE-WIDE VARIABLES The currently recognised package-wide variables are: DEVSCRIPTS_CHECK_DIRNAME_LEVEL, DEVSCRIPTS_CHECK_DIRNAME_REGEX These variables control scripts which change directory to find a debian/changelog file or suchlike, and some other miscellaneous cases. In order to prevent unwanted, even possibly dangerous, behaviour, these variables control when actions will be performed. The scripts which currently make use of these variables are: debc, debchange/dch, debclean, debi, debrelease, debuild and uscan, but this list may change with time (and I may not remember to update this manpage). Please see the manpages of individual scripts for details of the specific behaviour for each script. SEE ALSO
devscripts(1) and /usr/share/doc/devscripts/README.gz. AUTHOR
This manpage was written for the devscripts package by the package maintainer Julian Gilbey <jdg@debian.org>. DEBIAN
Debian Utilities DEVSCRIPTS.CONF(5)
All times are GMT -4. The time now is 10:05 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy