Axa-Ru , то что, вы привели, и есть проблема (в отличие от конкретного ${var:x:y}). Когда попадаешь в реальную систему (удаленный доступ к BSD или Solaris, к примеру), прежде всего надо определить:
1. В какой шелл по умолчанию находитесь.
2. Какие шелл доступны.
3. Можно ли сменить интерактивную шелл по умолчанию.
4. Что есть /bin/sh.
Ну а потом все остальное. Просто сменить оболочку - не выход, если нужно, ну, допустим, понять, что делается в разных rc-скриптах. В любом случае вопрос был по программированию в оболочке - как команду bash заменить командой shell.
Правильный ответ - никак, потому как "unix shell" не существует. Есть всего лишь многочисленные реализации sh с разными возможностями. И надо понять - где, что и как.
ЗЫ Все-таки нужно различать интерактивное использование и скрипты. И даже различать скрипты для себя, для обучения и для реального использования многими людьми или в разных системах.
ЗЫЫ Чисто личное мнение - для чуть более/менее сложных задач обработки строк не надо использовать shell. В данном конкретном случае я бы использовал
ifconfig | perl -lne '/^(eth\d+)/ && print $1'
Можно было бы использовать perl-вариант awk-решения, которое было приведено, но я не доверяю автоматическому разделению на поля по пробелам (хотя в данном конкретном случае это неважно).