Использование сценария Awk

448
Vaibhav

где должен находиться командный файл программы awk, когда я пытаюсь запустить команду awk внутри сценария оболочки? Я думаю, это должно быть в том же каталоге, но не уверен. Пожалуйста помоги.

0

2 ответа на вопрос

2
cbz

Если вы пытаетесь запустить команду awk из сценария оболочки, то команда awk должна находиться внутри переменной PATH, используемой файлом сценария. Самый простой способ убедиться в том, что это так (а также чтобы убедиться, что скрипт не ошибочно воспринимает вещи в пользовательской среде, это установить PATh в верхней части файла скрипта). например:

PATH = / USR / бен: / бен: / USR / местные / бен

как правило, awk будет установлен на системном уровне в один из них. Если awk находится просто в том же каталоге, что и скрипт, он не будет выбран, если только этот каталог не находится в пути или "." находится в пути, и вы запускаете сценарий из каталога, в котором он находится.

Жесткое кодирование пути в сценарии оболочки может привести к проблемам, при которых другие каталоги «bin» и «sbin» могут быть проигнорированы. Например, в NetBSD, где используется система пакетов (pkgsrc), предлагаемый путь не включает каталоги / usr / pkg / bin / или / usr / pkg / sbin /. Randolf Richardson 13 лет назад 0
Что ж, в этом случае вам придется соответствующим образом написать жесткий код. Полагаться на пользовательский набор PATH хуже - у вас нет гарантии, что он правильный, и, кроме того, вы открываете дыру, которую может использовать вредоносное программное обеспечение, установленное где-то нестандартное в системе. Скрипт должен включать свои собственные зависимости, в противном случае пользовательский опыт непредсказуем. cbz 13 лет назад 1
0
Randolf Richardson

Если он находится в текущем рабочем каталоге, используйте для команды «./awk» вместо «awk». Обычно в Unix / Linux это будет в пути.