embedded-arrays.sh

来自「Shall高级编程」· Shell 代码 · 共 68 行

SH
68
字号
#!/bin/bash# embedded-arrays.sh# Embedded arrays and indirect references.# This script by Dennis Leeuw.# Used with permission.# Modified by document author.ARRAY1=(        VAR1_1=value11        VAR1_2=value12        VAR1_3=value13)ARRAY2=(        VARIABLE="test"        STRING="VAR1=value1 VAR2=value2 VAR3=value3"        ARRAY21=${ARRAY1[*]})       # Embed ARRAY1 within this second array.function print () {        OLD_IFS="$IFS"        IFS=$'\n'       #  To print each array element                        #+ on a separate line.        TEST1="ARRAY2[*]"        local ${!TEST1} # See what happens if you delete this line.        #  Indirect reference.	#  This makes the components of $TEST1	#+ accessible to this function.        #  Let's see what we've got so far.        echo        echo "\$TEST1 = $TEST1"       #  Just the name of the variable.        echo; echo        echo "{\$TEST1} = ${!TEST1}"  #  Contents of the variable.                                      #  That's what an indirect                                      #+ reference does.        echo        echo "-------------------------------------------"; echo        echo        # Print variable        echo "Variable VARIABLE: $VARIABLE"	        # Print a string element        IFS="$OLD_IFS"        TEST2="STRING[*]"        local ${!TEST2}      # Indirect reference (as above).        echo "String element VAR2: $VAR2 from STRING"        # Print an array element        TEST2="ARRAY21[*]"        local ${!TEST2}      # Indirect reference (as above).        echo "Array element VAR1_1: $VAR1_1 from ARRAY21"}printechoexit 0#   As the author of the script notes,#+ "you can easily expand it to create named-hashes in bash."#   (Difficult) exercise for the reader: implement this.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?