我正在從bash腳本調用perl程序。這個Perl腳本在我從命令行標記它的參數時起作用,但是當我從bash腳本調用它時會產生錯誤。
這裏是bash腳本的相關部分:
for ((i=1; i<=$z; i++))
do
if (($i%2 == 0)); then
~/Desktop/SNP_finder.pl `awk 'FNR == '$i <"${d}".fasta` `awk ...` "${d}".txt
else
...
和Perl腳本:
我可以運行在終端窗口SNP_finder.pl
罰款,但是當我管這個猛砸腳本它給我錯誤Use of unitialized value $filename
和聲稱$filename
的值是''
。
請顯示腳本中使用的整個'awk'命令。你如何從終端窗口運行命令? –
我知道'awk'表示很好,因爲管道工作正常,但不添加文件名。但他們是: 'awk'FNR =='$ i <「$ {d}」。fasta'和'awk'FNR == 2'<「$ {d}」。fasta' – quantik
也許這可能是值得的複製'〜/ Desktop/SNP ...'命令,除了將'perl'程序的名稱更改爲'echo'以查看'awk'命令(以及文件名擴展名)在您的腳本中變得怎樣?看起來,如果它是從命令行運行的,但不在腳本內運行,那麼腳本中的環境(某些變量未初始化或其他設置或不同的位置)會導致問題,這種情況有所不同。你知道'awk'命令在命令行中給你什麼,但是從腳本內部怎麼樣? –