簡體   English   中英

如何編寫一個以數據文件名作為參數來運行我的 perl 腳本的 shell 腳本?

[英]How do I write a shell script that takes a data file name as an argument to run my perl script?

我正在學習 Perl 和 Shell 腳本,我面臨的挑戰是編寫一個 shell 腳本,將 csv 文件作為參數,然后讓該 shell 腳本運行我的 perl 腳本 (test.pl)。 我似乎無法得到正確的語法,我每次都終止,因為它掛斷了我的終端。

例如 shell 腳本是test.sh

#/bin/bash
./test.pl $i` 

在我的終端上我寫出來

test.sh testfile.csv

最終,我希望我的 perl 腳本讀取測試文件,以便它可以運行。

我認為您的錯誤來自$i`部分。

首先,尾隨反引號可能是一個錯字,應該引發語法錯誤。 其次, i變量未定義,因此$i解析為空字符串。 由於它沒有被引用,shell 將省略它並調用test.pl不帶任何參數......因此您的終端可能掛起,因為您的 perl 腳本正在等待輸入。

正如@fra 建議的那樣,您應該使用$1而不是$i ,因此將傳遞給您的 bash 腳本的第一個參數傳遞給您的 perl 腳本。

根據您的 perl 腳本(shebang、執行寫入),您可能會也可能不會手動調用 perl 可執行文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM