Это не ошибка, а ошибка в вашем коде.Проблемная строка:
if ( ismodel != foo ) {
Здесь foo
должно быть "foo"
.Прямо сейчас вы сравниваете с пустой переменной.Это дает ложь, когда у вас есть совпадение, и истину, когда у вас нет совпадения.Так что проблема не в том, как вы используете переменные оболочки.
Но, как сказали другие авторы, предпочтительным способом передачи аргументов в awk
является использование переключателя -v
.Это также будет работать, когда вы решите поместить свой awk-скрипт в отдельный файл, и предотвратит любые проблемы с цитированием.
Я также не уверен насчет использования вами фиктивного файла.Это только для примера?В противном случае вы должны опустить файл и поместить весь свой код в блок BEGIN {}
.