用于自动安装cpan模块的Shell脚本

时间:2016-11-28 23:22:52

标签: linux shell cpan

我正在编写一个shell脚本来自动安装cpan(Comprehensive Perl Archive Network)模块。

#!/bin/bash
perl -MCPAN -e shell
o conf make_arg -I/"$PWD"
o conf make_install_arg -I/"$PWD"

正在执行第一个命令,它进入cpan shell,但未检测到后面的命令。我认为后来的命令没有被执行,因为它是一个不同的shell。 任何领导都表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:2)

您正在编写bash脚本,而o conf ....不是bash命令。

您可以通过

远程控制CPAN shell
  • 提供文件中的所有输入,从中重定向stdin,即perl -MCPAN -e shell <my_commands.txt。请注意,如果CPAN shell在每个命令之后清除输入缓冲区(我不认为它确实如此,但它可能是这样),这将失败。

  • 撰写expect脚本

  • 使用您喜欢的编程语言并使用Telnet协议来控制CPAN shell;因为这是关于Perl的,所以你可以使用Perl的Net::Telnet模块。

  • 由于CPAN shell是用Perl编写的,我想你也可以使用CPAN模块中已有的功能在Perl中完全编写完整的东西。我将首先查看要研究的CPAN模块的源代码,以及如何在Perl中处理命令(例如conf)。毕竟,CPAN shell只是该模块的功能之一,虽然这当然是人们通常使用的。

答案 1 :(得分:0)

使用bash here documents。您的脚本将如下所示:

#!/bin/bash
perl -MCPAN -e shell <<END_OF_CPAN_COMMANDS
o conf make_arg -I/"$PWD"
o conf make_install_arg -I/"$PWD"
END_OF_CPAN_COMMANDS

您可以在最终END_OF_CPAN_COMMANDS之前添加更多命令。