У меня есть сценарий Shell, содержащий сценарий Perl и сценарий R.
мой сценарий оболочки R.sh:-
#!/bin/bash
./R.pl #calling Perl script
`perl -lane 'print $F[0]' /media/data/abc.cnv > /media/data/abc1.txt`;
#Shell script
Rscript R.r #calling R script
Это мой R.pl (руководитель):-
`export path=$PATH:/media/exe_folder/bin`;
print "Enter the path to your input file:";
$base_dir ="/media/exe_folder";
chomp($CEL_dir = <STDIN>);
opendir (DIR, "$CEL_dir") or die "Couldn't open directory $CEL_dir";
$cel_files = "$CEL_dir"."/cel_files.txt";
open(CEL,">$cel_files")|| die "cannot open $file to write";
print CEL "cel_files\n";
for ( grep { /^[\w\d]/ } readdir DIR ){
print CEL "$CEL_dir"."/$_\n";
}close (CEL);
Выходные данные сценария Perl являются входными данными для сценария Shell, а выходные данные оболочки - входными данными для сценария R.
Я хочу запустить сценарий оболочки, указав имя входного файла и выводимя файла, например: -
./R.sh home/folder/inputfile.txt home/folder2/output.txt
Если в папке много файлов, то для ее обработки потребуется только пользовательский файл.Есть ли способ сделать это?