я создал свою основную переменную из команды чтения (я делал это вручную, так и с помощью скрипта):Как использовать переменную в команде, которая создает еще одну переменную
read NAME
Затем я хочу использовать это NAME
переменной для поиска файла и создать еще одну переменную:
STUDENT=$(grep $NAME <students.dat | awk -F: '/$NAME/ {print $1}')
Если я выполнить команду вручную с реальным именем из этого students.dat файла (а не $ NAME), он выполняет и отображает то, что я хочу. Однако, когда я запускаю эту команду (вручную или из сценария с использованием $NAME
), он возвращает пустое значение, и я не уверен, почему.
Передача значение '$ name' с' -V' вариант является более безопасным. – chepner
Красивая! Так оно и было. Благодаря! – SuperheroSmith
Лучше заключить $ NAME в двойные кавычки, переходя к 'grep'. Кроме того, используйте '--' для предотвращения сбоев, вызванных любыми ведущими' -' в $ NAME. Итак, 'grep -" $ NAME "' намного лучше. – codeforester