Skip to main content
added 183 characters in body
Source Link
ilkkachu
  • 148.1k
  • 16
  • 268
  • 441

Use namerefs (in Bash >= 4.3):

$ array=armin=(foo bar doo)
$ declare -n p=arraygral=armin      # 'gral' references array 'armin'  
$ gral[123]=quux             # same as 'armin[123]=quux'
$ echo "${p[@]gral[@]}"
foo bar doo quux
$ echo "${gral[1]}"
bar
$ echo "${!p[@]gral[@]}"         # listing the indexes works too
0 1 2 123

See also: Does bash provide support for using pointers?

Use namerefs (in Bash >= 4.3):

$ array=(foo bar doo)
$ declare -n p=array
$ echo "${p[@]}"
foo bar doo
$ echo "${!p[@]}"
0 1 2

See also: Does bash provide support for using pointers?

Use namerefs (in Bash >= 4.3):

$ armin=(foo bar doo)
$ declare -n gral=armin      # 'gral' references array 'armin'  
$ gral[123]=quux             # same as 'armin[123]=quux'
$ echo "${gral[@]}"
foo bar doo quux
$ echo "${gral[1]}"
bar
$ echo "${!gral[@]}"         # listing the indexes works too
0 1 2 123

See also: Does bash provide support for using pointers?

Source Link
ilkkachu
  • 148.1k
  • 16
  • 268
  • 441

Use namerefs (in Bash >= 4.3):

$ array=(foo bar doo)
$ declare -n p=array
$ echo "${p[@]}"
foo bar doo
$ echo "${!p[@]}"
0 1 2

See also: Does bash provide support for using pointers?