summaryrefslogtreecommitdiff
path: root/examples/scripts.noah/aref.bash
blob: 9b221b851925418c5563535ed8c84a85a7038660 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# aref.bash --- pseudo-array manipulating routines
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created 1992-07-01
# Last modified: 1993-02-03
# Public domain

# Conversion to bash v2 syntax done by Chet Ramey

# Commentary:
# Code:

#:docstring aref:
# Usage: aref NAME INDEX
#
# In array NAME, access element INDEX (0-origin)
#:end docstring:

###;;;autoload
function aref ()
{
    local name="$1"
    local index="$2"

    set -- ${!name}
    [ $index -ge 1 ] && shift $index
    echo $1
}

#:docstring string_aref:
# Usage: aref STRING INDEX
#
# Echo the INDEXth character in STRING (0-origin) on stdout. 
#:end docstring:

###;;;autoload
function string_aref ()
{
  local stuff=${1:$2}
  echo ${stuff:0:1}
}

provide aref

# aref.bash ends here