Скриптовые ссылки и 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 ..