# be done with grep, but let's do it with shell prefix removal
# to avoid unnecessary processes. This falls through if
# "@${_i}@" isn't present in $_ips.
- [ "$_ips" = "${_ips#*@${_i}@}" ] || continue
+ [ "$_ips" = "${_ips#*@"${_i}"@}" ] || continue
echo "Removing ip rule/routes for unhosted public address $_i"
del_routing_for_ip "$_i"
local test_dir test_suite_dir reldir
test_dir=$(cd "$CTDB_TEST_DIR" && pwd)
test_suite_dir=$(cd "$CTDB_TEST_SUITE_DIR" && pwd)
- reldir="${test_suite_dir#${test_dir}/}"
+ reldir="${test_suite_dir#"${test_dir}"/}"
export CTDB_TEST_TMP_DIR="${test_state_dir}/${reldir}"
rm -rf "$CTDB_TEST_TMP_DIR"
# Can't find it? Check relative to CTDB_TEST_DIR.
# Strip off current directory from beginning,
# if there, just to make paths more friendly.
- f="${CTDB_TEST_DIR#${PWD}/}/${f}"
+ f="${CTDB_TEST_DIR#"${PWD}"/}/${f}"
fi
if [ -d "$f" ] ; then
test_dir=$(cd "$CTDB_TEST_DIR" && pwd)
dir=$(cd "$f" && pwd)
- reldir="${dir#${test_dir}/}"
+ reldir="${dir#"${test_dir}"/}"
case "$reldir" in
*/*/*)
while read -r line ; do
# This needs to be done in 2 steps to
# avoid false matches.
- local line_bits="${line#|${pnn}|*|}"
+ local line_bits="${line#|"${pnn}"|*|}"
[ "$line_bits" = "$line" ] && continue
+ # shellcheck disable=SC2295
+ # This depends on $bits being a pattern
[ "${line_bits#${bits}}" != "$line_bits" ] && \
return 0
done
fi
local nl="
"
- ctdb_status_output="${ctdb_status_output#*${nl}}"
+ ctdb_status_output="${ctdb_status_output#*"${nl}"}"
fi
(
# If $nodes contains a space or a newline then assume multiple nodes.
nl="
"
- [ "$nodes" != "${nodes%[ ${nl}]*}" ] && verbose=true
+ [ "$nodes" != "${nodes%[ "${nl}"]*}" ] && verbose=true
fi
pids=""