This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Setting Integer Variables in Bash


On Thu, 29 Jan 2009, Mark J. Reed wrote:
On Thu, Jan 29, 2009 at 5:54 PM, whitewall wrote:
#! /cygdrive/c/cygwin/bin/bash
declare -i Red
declare -i Green
Red=10
Green=$Red+1

Since you've declared both Green and Red as integer, you should just do Green=Red+1, without the dollar sign. Doing Green=$Red+1 first takes Red's value, which is stored as an integer, expands it back into its decimal string representation, and then reparses it to yield its integer value.

There IS one subtle difference. If you're running with "set -x", Green=$Red+1 will echo + Green=10+1 But Green=Red+1 will echo + Green=Red+1 (assuming that you've not changed PS4, IFS, &c &c). You can decide which "set -x" output you like. I found that I preferred the substituted forms, the ones with $this and $that.

--
Tim McDaniel, tmcd@panix.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]