From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18669 invoked from network); 3 Nov 1997 08:36:32 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 3 Nov 1997 08:36:32 -0000 Received: (from list@localhost) by math.gatech.edu (8.8.5/8.8.5) id DAA20598; Mon, 3 Nov 1997 03:27:45 -0500 (EST) Resent-Date: Mon, 3 Nov 1997 03:27:45 -0500 (EST) Sender: rz2a022@rrz.uni-hamburg.de Message-ID: <345D8AD8.88987BF@rrz.uni-hamburg.de> Date: Mon, 03 Nov 1997 09:27:04 +0100 From: Bernd Eggink Organization: Regionales Rechenzentrum der Uni Hamburg X-Mailer: Mozilla 4.03 [en] (X11; I; Linux 2.0.30 i586) MIME-Version: 1.0 To: Zsh-workers Subject: Array index Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Resent-Message-ID: <"Tn8h32.0.n15.0iONq"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3595 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu What is the easiest way to find the index of a specific element in an array, apart from using a for loop? The statement (( i = array[(i)$value] )) fails if $value contains special characters like parentheses. I tried quotes on different parts of the expression, but without success. Example: x='a(b)' arr=($x bla) print $arr[(i)$x] # 3 print $arr[(i)"$x"] # 3 print $arr["(i)$x"] # zsh: bad math expression: unbalanced stack Any ideas? Bernd -- Bernd Eggink Regionales Rechenzentrum der Universitaet Hamburg eggink@rrz.uni-hamburg.de http://www.rrz.uni-hamburg.de/eggink/BEggink.html