При написании сценария я хотел бы знать, где находится текущий сценарий, чтобы найти другие файлы.
С обычным сценарием Scala я знаю, как это сделать, но со сценарием Ammonite — нет.
При написании сценария я хотел бы знать, где находится текущий сценарий, чтобы найти другие файлы.
С обычным сценарием Scala я знаю, как это сделать, но со сценарием Ammonite — нет.
Вместо стандартной линии челки я обычно использую:
#!/usr/bin/env amm
Я изменил свой сценарий на:
#!/bin/bash
exec amm "$0" `dirname "$0"` "$@"
!#
@main
def main(dir: String) {
print(dir)
}
Аргумент dir
получает путь, по которому лежит скрипт. Оно может быть абсолютным или относительным.
Если мы всегда хотим абсолютный путь:
#!/bin/bash
exec amm "$0" $(cd `dirname "${BASH_SOURCE[0]}"` && pwd) "$@"
!#