Array insert function
suggest changeThis function will insert an element into an array at a given index:
insert(){ h=' ################## insert ######################## # Usage: # insert arr_name index element # # Parameters: # arr_name : Name of the array variable # index : Index to insert at # element : Element to insert ################################################## ' [[ $1 = -h ]] && { echo "$h" >/dev/stderr; return 1; } declare -n __arr__=$1 # reference to the array variable i=$2 # index to insert at el="$3" # element to insert # handle errors [[ ! "$i" =~ ^[0-9]+$ ]] && { echo "E: insert: index must be a valid integer" >/dev/stderr; return 1; } (( $1 < 0 )) && { echo "E: insert: index can not be negative" >/dev/stderr; return 1; } # Now insert $el at $i __arr__=("${__arr__[@]:0:$i}" "$el" "${__arr__[@]:$i}") }
Usage:
insert array_variable_name index element
Example:
arr=(a b c d) echo "${arr[2]}" # output: c # Now call the insert function and pass the array variable name, # index to insert at # and the element to insert insert arr 2 'New Element' # 'New Element' was inserted at index 2 in arr, now print them echo "${arr[2]}" # output: New Element echo "${arr[3]}" # output: c
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents