Shell 自动安装 cpan 模块的脚本

Shell script to automate the installation of cpan modules

我正在编写 shell 脚本来自动安装 cpan(综合 Perl 存档网络)模块。

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

第一条命令正在执行,进入cpanshell,后面的命令没有检测到。我认为后面的命令没有被执行,因为它是不同的 shell。 对此表示赞赏。

谢谢。

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

您可以远程控制 CPAN shell,方法是

  • 在文件中提供所有输入,从那里重定向标准输入,即 perl -MCPAN -e shell <my_commands.txt。请注意,如果 CPAN shell 在每个命令后清除输入缓冲区(我认为它不会,但可能会),这将失败。

  • 写一个expect脚本

  • 使用你最喜欢的编程语言,使用Telnet协议驾驭CPANshell;由于这是关于 Perl 的,您可以使用 Perl 的 Net::Telnet 模块。

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

使用bashhere 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 之前添加更多命令。