Linux: Как я выполняю сценарий способом, что он знает свой каталог?

Я должен записать сценарий, который назвали бы от любого местоположения, но должен работать из каталога, в котором оно находится. Сценарий должен запросить свой каталог во времени выполнения.

Как это может быть достигнуто?

Пример:

  • сценарий hello.sh находится в /someplace/
  • хотя от этого называют /other/place/,
  • сценарий знает (во время времени выполнения), что это находится в /someplace

Править
Дополнительный вопрос:
Как о местоположении сценария, но с разрешенной символьной ссылкой?

Пример:

  • сценарий hello.sh находится в /someplace/
  • символьная ссылка существует к нему в /bin
  • хотя от символьной ссылки называют /other/place/,
  • сценарий знает (во время времени выполнения), что это находится в /someplace
6
задан 02.10.2009, 01:15

2 ответа

echo $(dirname $0)

или

echo ${0%/*}
5
ответ дан 07.12.2019, 15:59

К моему дополнительному вопросу: Я нашел, что это работало:

echo $(dirname $(readlink $0))

или

echo `dirname \`readlink $0\``

Править
Кажется, этот ответ появился одновременно, Dennis Williamson прокомментировал свой ответ с решением ;)

2
ответ дан 07.12.2019, 15:59

Теги

Похожие вопросы