0
私は、シェルスクリプトmakecsv.sh
が正しく動作しますが、Perlから呼び出されると失敗します。Perl内から動作中のシェルスクリプトを実行できません
これは私がPerlスクリプトからmakecsv.sh
を実行したときに、それが与えるメッセージです:
fr call
Source file does not exist
Usage: fr -s <source_file> -o <output_file>
-s <source_file> - Input file which has Counter Information
-o <output_file> - Comma separated output file
third move
mv: cannot access /home/ateam/.../SAM5_01-05- 2016_11:07:29.csv
/home/ateam/.../SAM5_01-05-2016_11:07:29.xcm: No such file or directory
cp: cannot access /home/ateam/.../SAMlog/ /home/ateam/.../SAM5_01-05-2016_11:07:29.csv
md5sum: /home/ateam/.../SAM5_01-05-2016_11:07:29.csv: No such file or directory
/home/ateam/.../SAM5_01-05-2016_11:07:29.csv: No such file or directory
これは私が何このことを理解していないfr
ノード
drwxrwxr-x 4 ateam ateam 4096 May 1 11:12 ./
drwxr-xr-x 3 ateam ateam 4096 Mar 17 11:18 ../
lrwxrwxrwx 1 ateam ateam 7 Mar 12 19:13 c -> counter*
-rwxrwxr-x 1 ateam ateam 1974 Mar 12 19:04 counter*
-rwxrwxr-x 1 ateam ateam 134 Mar 21 11:22 e*
-rw-rw-r-- 1 ateam ateam 25152020 Mar 21 11:22 enb
-rw-rw-r-- 1 ateam ateam 1880872 Mar 21 11:21 enb283.xml
-rwxrwxr-x 1 ateam ateam 811 Mar 28 11:59 expftp*
lrwxrwxrwx 1 ateam ateam 7 Mar 17 11:23 fr -> fruinfo*
-rw-rw-r-- 1 ateam ateam 75753 Mar 22 13:07 fru_0322.xls
-rwxrwxr-x 1 ateam ateam 2878 Apr 21 22:16 fruinfo*
drwxrwxr-x 2 ateam ateam 4096 May 1 11:12 md5sum/
...
を含むディレクトリのリストですディレクトリ項目は
lrwxrwxrwx 1 ateam ateam 7 Mar 17 11:23 fr -> fruinfo*
もう少し詳しい情報。
シェルスクリプトでは、fr
への呼び出しは、この
fr -s "$newfile" -o "$frufile"
のように見え、シェバング行はPerlのファイルで、この
#!/bin/bash
で、シェルスクリプトがこの
のように呼ばれていますmy $cmd = qq(bash makecsv.sh $initdir$sam.xcm $csvdest);
print $cmd, "\n";
#system 'bash makecsv.sh ${initdir}${sam}.xcm $csvdest';
system($cmd);
上記の変数はすべて引用符で囲まれています。
Btwでは、makecsv.shとperlスクリプトは同じディレクトリにあります。上記のfrファイルのリストは、別のディレクトリにあります。 –
'makecsv.sh'の' fr'呼び出しの直前に 'echo" DEBUG:newfile:$ newfile "を追加し、シェルやPerlスクリプトから' makecsv.sh'を実行したときに表示されるものを見てください。 – bart
私はそれを試みます。 fruinfoとcounterファイルがfrとcの部分で何をしているのか知っていますか? –