Флаг -i для sed требует аргумент файла, без которого команда sed делает то, что вы ожидаете.
Однако я бы подумал об использовании tr
вместо sed
для этой простой замены:
fruits="$3"
checkFruits="$(tr , ' ' <<< $fruits)"
echo $checkFruits
Глядя на более широкую картинку, хотите ли вы посчитать строки, разделенные запятыми, или количество слов после замены запятых на пробелы? Например, хотите ли вы, чтобы строка "i like,apples,oranges,and bananas"
возвращала счет 4 или 6? (Этот вопрос спорный, если вы на 100% уверены, что в ваших входных данных никогда не будет пробелов.)
Если 6, то другие ответы (включая мой) уже будут работать.
Однако, если вы хотите, чтобы ответ был 4, то вы можете сделать что-то еще, например:
fruits="$3"
checkFruits="$(tr , \\n <<< $fruits)"
itemCount="$(wc -l <<< $checkFruits)"
Конечно, это может быть немного сжато, но просто отбрасывает вопрос о том, что вы действительно делаете. Задавая здесь вопрос, полезно опубликовать ожидаемые результаты вместе с входными данными и кодом, который вы уже использовали для решения проблемы.