[英]How to write a bash shell script which takes one argument (directory name)
[英]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.