Просто используйте $ path в качестве аргумента для вашего system
или exec
ini perl.Он отправит arg в скрипт оболочки, а затем использует его как arg для Rscript
.
Например, у меня есть 3 скрипта.Вот и мы.
root@analist:~/test# cat file.pl
#!/usr/bin/perl
#Input file
print "[Perl] Enter file:";
chomp(my $filepath = <STDIN>);
#Send to bash script
my @cmd = ('./file.sh');
push @cmd, $filepath;
system(@cmd);
root@analist:~/test# cat file.sh
#!/bin/bash
echo "[Bash] Filename: $1"
Rscript file.R $1
root@analist:~/test# cat file.R
args <- commandArgs(TRUE)
fileTxt <- args[1]
cat(paste('[R] File:', fileTxt, '\n'))
root@analist:~/test# ./file.pl
[Perl] Enter file:test.txt
[Bash] Filename: test.txt
[R] File: test.txt
Надеюсь, этот ответ поможет.