Bash Scripting Variable Scope Using Piped While Loop

I've been struggling with this for awhile, wondering why all of my variables are null.  I just realized the variables disappear after leaving this while loop.

Note that I'm piping to the while loop which makes a subshell I believe which is the cause of the issue:

 

echo "$accounts"|while read thisline; do
   somevariable="some value"
   (( ++counter ))
done

At all costs you need to avoid the style above, use a for loop or whatever it takes BUT DO NOT pipe anything in or the variables you get from the loop will be NULL


Tags:

bash, scripting, variable, scope, piped, loopi, ve, struggling, variables, null, piping, subshell, echo, quot, thisline, somevariable,

Latest Articles

  • python 3 pip cannot install mysql module
  • QEMU-KVM won't boot Windows 2016 or 2019 server on an Intel Core i3
  • Virtualbox vbox not starting "No suitable module for running kernel found"
  • Bind / named not responding to queries solution
  • Linux Mint How To Set Desktop Background Image From Bash Prompt CLI
  • ImageMagick Convert PDF Not Authorized
  • ImageMagick Converted PDF to JPEG some files have a black background solution
  • Linux Mint Mate Customize the Lock screen messages and hide username and real name
  • Ubuntu/Gnome/Mint/Centos How To Take a partial screenshot
  • ssh how to verify your host key / avoid MIM attacks
  • Cisco IP Phone CP-8845 8800/8900 Series How To Reset To Factory Settings Instructions
  • ls how to list ONLY directories
  • How to encrypt your SSH private key file id_rsa
  • Linux Mint 18 Disable User Name List from showing on Login Screen
  • Firefox Cannot Hit Enter Key In Address Bar and Location History Not Working
  • Cisco Unified Communications Manager / CUCM IP 8.6,10,12 Install Error Solution
  • Ubuntu Debian Mint Linux SSHD OpenSSH Server Not Starting After Reboot Solution
  • nmap how to scan for all ports and not just the 1000 most common ports
  • Windows 7,8,10 and Server 2008, 2012, 2016, 2019 Read Only Attribute Won't Go Away
  • bind / named how to make a wildcard record and retain defined A records