#!/usr/bin/env bash
+# Desc: Reads stdin and positional arguments
yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
die() { yell "$*"; exit 111; } # same as yell() but non-zero exit status
# Output: stdout (newline delimited)
# Example: read_stdin_psarg "$@"
# Depends: GNU bash (version 5.1.16)
+ # Version: 0.0.3
local input_stdin input_psarg output;
# Store stdin
if [[ -p /dev/stdin ]]; then
input_stdin="$(cat -)";
fi;
- yell "DEBUG:$(declare -p input_stdin)";
# Store arguments
if [[ $# -gt 0 ]]; then
- input_psarg="$@";
+ input_psarg="$*";
fi;
- yell "DEBUG:$(declare -p input_psarg)";
# Combine as output array elements
## Read in stdin
output+=("$arg");
done;
fi;
- yell "DEBUG:$(declare -p output)";
# Print to stdout
printf "%s\n" "${output[@]}";
}; # read stdin and positional argument to stdout lines
-
main() {
read_stdin_psarg "$@";
};