Bash 如何编写以数据文件名为参数的shell脚本来运行perl脚本?
我正在学习Perl和Shell脚本,我面临的挑战之一是编写一个以csv文件为参数的Shell脚本,然后让该Shell脚本运行我的Perl脚本(test.pl)。我似乎无法获得正确的语法下来,我已经终止了每次,因为它挂断了我的终端 例如,shell脚本是test.shBash 如何编写以数据文件名为参数的shell脚本来运行perl脚本?,bash,shell,perl,Bash,Shell,Perl,我正在学习Perl和Shell脚本,我面临的挑战之一是编写一个以csv文件为参数的Shell脚本,然后让该Shell脚本运行我的Perl脚本(test.pl)。我似乎无法获得正确的语法下来,我已经终止了每次,因为它挂断了我的终端 例如,shell脚本是test.sh #/bin/bash ./test.pl $i` 在我的终端上,我打字 test.sh testfile.csv 最终,我希望我的perl脚本能够读取测试文件,以便它能够运行。我认为您的错误来自$I`部分 首先,后面的反引号可
#/bin/bash
./test.pl $i`
在我的终端上,我打字
test.sh testfile.csv
最终,我希望我的perl脚本能够读取测试文件,以便它能够运行。我认为您的错误来自
$I`
部分
首先,后面的反引号可能是一个输入错误,应该引起语法错误。其次,i
变量未定义,因此$i
解析为空字符串。由于它没有被引用,shell将省略它并调用test.pl
,而不带任何参数。。。因此,您的终端可能挂起,因为您的perl脚本正在等待输入
正如@fra所建议的,您应该使用$1
而不是$i
,从而将传递给bash脚本的第一个参数传递给perl脚本
根据您的perl脚本(shebang,execution write),您可以手动调用也可以不手动调用perl可执行文件。您是否尝试过使用
perl test.pl$1
?@fra谢谢!把$i换成$1有帮助!你和@fra是对的。后面的反引号是一个我没有意识到的输入错误,将位置参数从--$I改为--%1有助于我的脚本运行。