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 只是这个模块的功能之一,虽然这当然是人们通常使用的功能。
使用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
之前添加更多命令。
我正在编写 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 只是这个模块的功能之一,虽然这当然是人们通常使用的功能。
使用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
之前添加更多命令。