Bu commandArgs
işlevi, Rscript tarafından gerçek R yorumlayıcısına iletilen tüm seçenekleri almak ve aramak için kullanabilirsiniz --file=
. Betiğiniz yoldan başlatılmışsa veya tam yolla başlatılmışsa, script.name
aşağıdakiler bir ile başlayacaktır '/'
. Aksi takdirde, göreli olmalıdır cwd
ve tam yolu elde etmek için iki yolu birleştirebilirsiniz.
Düzenleme: Görünüşe göre yalnızca script.name
yukarıdakilere ihtiyacınız var ve yolun son bileşenini kaldırıyorsunuz. Gereksiz cwd()
örneği kaldırdım ve ana komut dosyasını temizledim ve yayınladım other.R
. Bu komut dosyasını ve other.R
komut dosyasını aynı dizine kaydedin chmod +x
ve ana komut dosyasını çalıştırın.
ana.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 <- file.path(script.basename, "other.R")
print(paste("Sourcing",other.name,"from",script.name))
source(other.name)
diğer R :
print("hello")
çıktı :
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"
Dehmann'ın aradığına inanıyorum.