#!/usr/bin/env bash
# Desc: Insert string into provided string
-yell() { echo "$0:${FUNCNAME[*]}: $*" >&2; }
+yell() { echo "$0: $*" >&2; }
die() { yell "$*"; exit 111; }
must() { "$@" || die "cannot $*"; }
-
insertStr() {
- # Desc: Inserts a
+ # Desc: Inserts a string into another string at a specified position.
# Input: arg1: str str_rec String to receive insertion
# arg2: int pos Insertion position (0 = append to front)
# arg3: str str_ins String to be inserted
# Output: stdout: Combined string
- # Version: 0.0.1
+ # Version: 0.0.2
# Depends: BK-2020-03: yell(), die(), must()
# Ref/Attrib: * BK-2020-03: https://gitlab.com/baltakatei/baltakatei-exdev/
-
- local str_rec pos str_ins;
+ # * Cooper, Mendel. “Advanced Bash-Scripting Guide: Manipulating Strings”. tldp.org https://tldp.org/LDP/abs/html/string-manipulation.html
+
+ local str_rec pos str_ins re len_str_rec;
+ local pfx_pos_start pfx_len pfx;
+ local sfx_pos_start sfx_len sfx;
# Check args
if [[ $# -ne 3 ]]; then
# Calculate string stats
len_str_rec="${#str_rec}";
- len_str_ins="${#str_ins}";
# Form prefix
pfx_pos_start="0";
sfx="${str_rec:$sfx_pos_start:$sfx_len}";
# Print output to stdout
- printf "%s%s%s\n" "$pfx" "$str_ins" "$sfx";
+ printf "%s%s%s\n" "$pfx" "$str_ins" "$sfx";
}; # Insert string provided at indicated position via stdout