Аналогично этому >>In bash, how can I check if a string begins with some value?, но не дублируется.Проверка, начинается ли переменная с другой переменной в bash
У меня есть два массива, и для каждой строки внутри первой я хочу проверить, начинаются ли строки во второй, начиная с первой строки или нет.
array1=("test1","test2","test3");
array2=("test1 etc","test1 nanana","test2 zzz","test3 abracadabra");
for i in "${!array1[@]}"; do
for j in "${!array2[@]}"; do
if [[ "${array1[i]}" == "${array2[j]}*" ]]; then
echo "array1[$i] and arry2[$j] initial matches!";
fi;
done;
done
Я попробовал много условий внутри, если, например:
if [[ "${array1[i]}" == "${array2[j]*}" ]]
if [[ "${array1[i]}" == "${array2[j]}*" ]]
if [[ "${array1[i]}" = "${array2[j]*}" ]]
if [[ "${array1[i]}" = "${array2[j]}*" ]]
Также без кавычек, фигурные скобки, и так далее, все без успеха.
Мой код длиннее; Я использую «readarray -t array1» для установки массивов с командами, поэтому я объявлял массивы не так, но только здесь, в вопросе - моя ошибка. Кроме того, я использовал «!» в передней части массива, потому что я хотел, чтобы «i» и «j» были индексами. Но ваше решение действительно хорошо работает. Благодарю. – gcpdev
Да, я не понял, что вы пытаетесь использовать индексы, в то время как я думаю, что мое первое решение лучше с bash. Я обновляю ответ, чтобы включить тот, который вы пытались реализовать. –
отлично, только что получил еще одну ошибку в моем коде. Большое спасибо. – gcpdev