Вы можете использовать функцию commandArgs
, чтобы получить все параметры, которые были переданы Rscript, фактическому интерпретатору R и найти их для --file=
. Если ваш скрипт был запущен с пути или был запущен с полным путем, script.name
ниже начнется с '/'
. В противном случае это должно быть относительно cwd
, и вы можете выполнить два пути, чтобы получить полный путь.
Edit: похоже, что вам понадобится только script.name
выше и снять финальную составляющую пути. Я удалил ненужный образец cwd()
и очистил основной скрипт и отправил свой other.R
. Просто сохраните этот скрипт и скрипт other.R
в том же каталоге, chmod +x
, и запустите основной скрипт.
main.R :
#!/usr/bin/env Rscript
initial.options <- commandArgs(trailingOnly = FALSE)
file.arg.name <- "--file="
script.name <- sub(file.arg.name, "", initial.options[grep(file.arg.name, initial.options)])
script.basename <- dirname(script.name)
other.name <- paste(sep="/", script.basename, "other.R")
print(paste("Sourcing",other.name,"from",script.name))
source(other.name)
other.R :
print("hello")
output :
burner@firefighter:~$ main.R
[1] "Sourcing /home/burner/bin/other.R from /home/burner/bin/main.R"
[1] "hello"
burner@firefighter:~$ bin/main.R
[1] "Sourcing bin/other.R from bin/main.R"
[1] "hello"
burner@firefighter:~$ cd bin
burner@firefighter:~/bin$ main.R
[1] "Sourcing ./other.R from ./main.R"
[1] "hello"
Это то, что я считаю дехман ищет.
Используйте функции expected
и actual
. Таким образом, в common
вы создаете что-то вроде expect fun isDebugEnabled(): Bool
, затем в iOS вы реализуете это с помощью специального API для iOS, аналогично для Android.
https://kotlinlang.org/docs/reference/platform-specific-declarations.html