Первая проблема в том, что errorStrings
не то, что вы ожидаете.Попробуйте
echo "e=[${errorStrings}]"
Если вы хотите использовать двойные кавычки внутри вашей строки, используйте
errorStrings='"Some error","Another error","This, error"'
Ваш скрипт будет работать лучше, когда вы цитируете $errorStrings
в цикле for.
oldIFS=$IFS
IFS=","
for error in "$errorStrings";do
echo "Checking for $error"
#grep "$error" file >/dev/null 2>&1 && echo "$error found"
continue
done
IFS=$oldIFS
Этот цикл еще нужно изменить, чтобы удалить кавычки.Возможно, это хороший момент для использования массива:
errorStrings=("Some error" "Another error" "This, error")
for error in "${errorStrings[@]}";do
echo "Checking for $error"
#grep "$error" file >/dev/null 2>&1 && echo "$error found"
continue
done
Я не уверен, какие опции у вас есть в вашей среде, возможно, это тоже будет работать:
errorStrings='"Some error","Another error","This, error"'
echo "${errorStrings}" | sed 's/","/"\n"/g' | while read error; do
echo "Checking for $error"
done