Скриптовые ссылки и awk-скрипты (проблема с путями)

Я имею main.sh а также external.awk файлы.

Они находятся в одном каталоге.

От main.sh Я называю этот внешний сценарий awk следующим образом:

awk -f external.awk ..

и, конечно, это работает.

Теперь, когда я делаю:

cd /usr/local/bin
sudo ln -s /path/to/scripts/dir/main.sh main.sh
sudo ln -s /path/to/scripts/dir/external.awk external.awk

Я могу позвонить моему main.sh из любого каталога, в котором я нахожусь. Но это дает мне ошибку при невозможности найти external.awk скрипт.

Почему ссылки не работают в этом случае, не так ли

awk -f external.awk ..

вызов external.awk относительно папки, в которой он находится, таким образом, в этом случае вызывается та символическая ссылка, которая находится в /usr/local/bin дорожка?

РЕДАКТИРОВАТЬ

Вскоре после публикации моего вопроса я обнаружил, что это хороший способ справиться с этой ситуацией:

https://www.gnu.org/software/gawk/manual/html_node/AWKPATH-Variable.html

Это не POSIX-совместимый, но в этом случае это не имеет значения для меня.

1 ответ

Измените main.sh так, чтобы он вызывал awk следующим образом:

awk -f /usr/local/bin/external.awk ..
Другие вопросы по тегам