パターン マッチングを使用して、読み込まれたサブシステムのリストでサブシステムを検索できます。
#! /bin/bash
commands=('subsystem1 reload' 'subsystem2 reload' 'subsystem3 reload')
loaded='subsystem1,subsystem2';
new_commands=()
for c in "${commands[@]}" ; do
subsystem=${c%% *}
if [[ $loaded, == *$subsystem,* ]] ; then
new_commands+=("$c")
fi
done
for c in "${new_commands[@]}" ; do
echo "$c"
done
より堅牢なアプローチは、連想配列を使用することです (bash 4 が必要です)。
#! /bin/bash
commands=('subsystem1 reload' 'subsystem2 reload' 'subsystem3 reload')
loaded='subsystem1,subsystem2';
declare -A loaded_a
IFS_=$IFS
IFS=,
for subsystem in $loaded ; do
loaded_a[$subsystem]=1
done
IFS=$IFS_
new_commands=()
for c in "${commands[@]}" ; do
subsystem=${c%% *}
if [[ ${loaded_a[$subsystem] } ]] ; then
new_commands+=("$c")
fi
done
for c in "${new_commands[@]}" ; do
echo "$c"
done