আপনি commandArgsপ্রকৃত আর অনুবাদককে রুপলিপি দ্বারা পাস করা সমস্ত বিকল্প পেতে এবং সেগুলি অনুসন্ধান করতে ফাংশনটি ব্যবহার করতে পারেন --file=। আপনার স্ক্রিপ্টটি যদি পথ থেকে চালু করা হয় বা এটি একটি পুরো পাথ দিয়ে চালু করা হয়, script.nameনীচে একটি দিয়ে শুরু হবে '/'। অন্যথায়, এটি অবশ্যই আপেক্ষিক হতে পারে cwdএবং পুরো পথটি পেতে আপনি দুটি পথ একসাথে করতে পারেন।
সম্পাদনা: দেখে মনে হচ্ছে আপনার কেবল script.nameউপরের প্রয়োজন হবে এবং পথের চূড়ান্ত উপাদানটি সরিয়ে ফেলতে হবে। আমি অপ্রয়োজনীয় cwd()নমুনা সরিয়েছি এবং মূল স্ক্রিপ্টটি পরিষ্কার করেছি এবং আমার পোস্ট করেছি other.R। কেবল এই স্ক্রিপ্ট এবং other.Rস্ক্রিপ্টটিকে একই ডিরেক্টরিতে সেভ chmod +xকরুন, সেগুলি এবং মূল স্ক্রিপ্টটি চালান।
প্রধান.আর :
#!/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)
other.R :
print("hello")
আউটপুট :
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"
আমি বিশ্বাস করি এটিই দেহমান খুঁজছেন।