delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/02/09/02:31:25

From: rhowarth AT sgb DOT co DOT uk (Howarth, Richard)
Subject: RE: bash questions
9 Feb 1998 02:31:25 -0800 :
Message-ID: <199802090947.JAA04114.cygnus.gnu-win32@peanut.sgb.co.uk>
Mime-Version: 1.0
To: gnu-win32 AT cygnus DOT com

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BD3543.8C4A9160
Content-Type: text/plain

As has been stated elsewhere on the list, if you want to run csh scripts
get hold of a ported csh - it will save you a lot of grief.
If you really want to convert your scripts to run under bash though I
hope the following ideas will help ...

> ----------
> From: 	Eric Horowitz[SMTP:ehorowitz AT mindspring DOT com]
> Sent: 	06 February 1998 14:07
> To: 	gnu-win32 AT cygnus DOT com
> Subject: 	bash questions
> 
> 
> I installed gnu-win32 simply to run some csh scripts that I had on a
> Solaris box. In the process of converting this script to bash I have
> encountered the following problems...
> 
> 1) set 
> 
>    It does not seem to do anything. I have been using declare instead.
> Is set
>    supposed to set variables?
Not really. It is used more for switching features of bash on and off,
although it can be used to set positional parameters (see later)
to set a parameter, simply assign it:
 $ PARAM="something or other"
If you need the parameter to be visible to sub-processes, export it:
 $ export PARAM 

> 2) let
> 
>       let THREE=1+2
> 
>    works fine in that 
> 
>       echo $THREE
> 
>    responds with 3, but...
> 
>       let OLTT=1<2
> 
>    responds with...
> 
>       2: no such file or directory
The problem is that the "<2" is being interpereted as redirecting input
from a file, named "2" in this case.
You can either wrap the expression in quotes, or use the "$(("
construction:
 $ let OLTT="1<2"
or
 $ OLTT=$((1<2))
both work.

> 3) If I have a string of items such as...
> 
>       declare ALIST="abc def ghi jkl mno pqr"
> 
>    I can access items individually in a for command such as...
> 
>       for ITEM in $ALIST; do
> 
>   but is there a command or syntax that will let me access any one
> specific
> member? I would
>   like to do something like...
> 
>       declare THIS_ITEM=$ALIST[$INDEX]
The korn shell has a "set -A" for simple arrays, but I can't find this
in bash.
You could try one of the following:
 $ ALIST="One Two Three Four"
 $ set $ALIST --
 $ THIS_ITEM=$3
 $ echo $3
 Three
or, using awk:
 $ ALIST="One Two Three Four"
 $ INDEX=2
 $ THIS_ITEM=$( echo $ALIST | awk -v INDEX=$INDEX "{print $INDEX}")
 $ echo $THIS_ITEM
 Two
NB these methods will allow you to retrieve specific subscript values,
they will not allow you to modify them.

> 4) test
> 
>    I would like to make complicated arithmetic relational operations
> such
> as...
> 
>    test ($V1 -lt $V2) -a ($V3 -lt $V4)
>    but I am not getting the syntax quite right. Is there a way to do
> this?
> 
I think you need to escape the parentheses, so that they are not
interpereted by the shell.
 $ test \( $V1 -lt $V2 \) -a \( $V3 -lt $V4 \)
seems to work.

NB while looking at these questions I noticed an odd thing:
 $ test 1 -lt 2
returns "0", but
 $ let "TEST=(1<2)"
results in TEST being assigned "1"



> Thanks... Eric Horowitz
My pleasure.
> -
> For help on using this list (especially unsubscribing), send a message
> to
> "gnu-win32-request AT cygnus DOT com" with one line of text: "help".
> 

------ =_NextPart_000_01BD3543.8C4A9160
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

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
LBEdgSKQbuAh4S1BjVD3ZHNNQqARcmngFeCCI6ak/ieQATdRUxR9sSlykluzsn8fMDzhsdIiYSqr
bdmjtU/9fYFUfQCLkQnRM0AIYXAWv25RWJKsZDChbei4CTN02T9/g8gHxJOZFx/AXLRhd95rwv/E
D8UbuSM9hJbHLLYof2XGNHzK8iNQds4Vc7kUjRBcezeSxgG5I1z8fSJrFsiHuAfJJ30AuYX8TkIf
MpXxbxIEcCvFJoH/KyAgAyCiEsAIgSQhshZzMv8E9WAgCkF0AR9BJrEjwlpi39drBGEGkE2BHsBt
nB+dL/uePwXANFhwlWF537N2tHf/AMC0oTfxC1AN4B4jULEfQP9qATWRGGBqwWlkKmFp4EfTP4hD
uYWqH1mT4FJqYCRWrR0gLWcwblBWeYEtIpD96CEz6GXgIFlIvoRp8FpT/yHRUtWx8a+0R5Cg8SDA
bXD+aIJgXhKudiBQTYNbIVMi/2C/HF1LZ1uC0QBwyCCwB5D/Z+Aqde9BOkHWQnQBThCMh+9tIR7h
WmKOC2Lcc7v0JXbzblHn01xcz+DoOfgB6OP/+BTpZ/kC7xVaoiiDm9rVmOcesIiyF/Bva8rDjMOV
8f9HlyohWmEN4I6iA6AEcL9zf8Lb59PoVISWjnEIcAYxIuwwIoIjl5wiq/Cj4Zqz/3AWZaGzwCGh
fbEEUo2VbUT9kSIxpZ3dX95veNnvFYugvw2wfTDmkTVs7x8cbE0msP+9wR2AZZHc3wkPChoxRsTw
/9XgLDMfEVy0UyMfgmpggUGvsjEmgyDg2VViK0EpbLHvGOCOsbDhsWBhIdAgkQ0l+iJBty2PAEeT
QkmNUIHDX7HSH4DBxXQwRVEiLDIirw/PENgOZUrtfQ0gAB8wAAAeADFAAQAAAAkAAABSSUNIQVJE
SAAAAAADABpAAAAAAB4AMEABAAAACQAAAFJJQ0hBUkRIAAAAAAMAGUAAAAAAAwA2AAAAAAAeAEIQ
AQAAADYAAAA8My4wLjEuMzIuMTk5ODAyMDYwOTA3NDQuMDA2OWI2NjhAcG9wLm1pbmRzcHJpbmcu
Y29tPgAAAAMAJgAAAAAAAgH5PwEAAABQAAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAABgAAAC9P
PVRXSUNLRU5IQU0vT1U9Q1JFQVRVUkUvQ049UkVDSVBJRU5UUy9DTj1SSUNIQVJESAAeAPg/AQAA
ABEAAABIb3dhcnRoLCBSaWNoYXJkAAAAAB4AOEABAAAACQAAAFJJQ0hBUkRIAAAAAAIB+z8BAAAA
UAAAAAAAAADcp0DIwEIQGrS5CAArL+GCAQAAAAYAAAAvTz1UV0lDS0VOSEFNL09VPUNSRUFUVVJF
L0NOPVJFQ0lQSUVOVFMvQ049UklDSEFSREgAHgD6PwEAAAARAAAASG93YXJ0aCwgUmljaGFyZAAA
AAAeADlAAQAAAAkAAABSSUNIQVJESAAAAABAAAcwwEOSoTg1vQFAAAgwMHAeikM1vQEeAD0AAQAA
AAUAAABSRTogAAAAAB4AHQ4BAAAADwAAAGJhc2ggcXVlc3Rpb25zAAALACkAAAAAAAsAIwAAAAAA
AwAGECmvvWIDAAcQlAgAAAMAEBAAAAAAAwAREAIAAAAeAAgQAQAAAGUAAABBU0hBU0JFRU5TVEFU
RURFTFNFV0hFUkVPTlRIRUxJU1QsSUZZT1VXQU5UVE9SVU5DU0hTQ1JJUFRTR0VUSE9MRE9GQVBP
UlRFRENTSC1JVFdJTExTQVZFWU9VQUxPVE9GR1JJAAAAAAnr

------ =_NextPart_000_01BD3543.8C4A9160--
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019