我正在编写一个脚本来安装Nagios并将其配置为我的需求。它需要cpanm和一些perl模块。
它使用这里的步骤/try/next函数:https://stackoverflow.com/a/5196220
step "Downloading cpanm installer"
try `wget -q http://cpanmin.us -O $swrepo/cpanm.install`
next
step "Installing cpanm"
try echo '{ exec </dev/tty; cat $swrepo/cpanm.install | perl - App::cpanminus; }' | bash
# try bash -c "$(cat $swrepo/cpanm.install | perl - App::cpanminus)"
# try cat $swrepo/cpanm.install | perl - App::cpanminus
next
step "Installing Perl module Nagios Config"
try `cpanm Nagios::Config`
next我在这里的问题是:
对有些沮丧的人有指点吗?
更新
我将cpanm安装程序拉出到一个单独的文件中:下一步“安装cpanm”尝试sh conf_cpanm.sh。
这是可行的,我可能会尝试在稍后的日期把它拉回来,但到目前为止,它起作用了。这样它就能留下了。
但是,为try cpanm Nagios::Config执行相同的操作将无法工作。该文件如下所示:
#!/bin/bash
cpanm Nagios::Config...and,如果我通过调用sh conf_nagcpanm.sh来运行它,它可以正常工作。
发布于 2015-07-09 00:52:43
我想用后排
try `cpanm Nagios::Config`是个错误。bash将在backticks中获取一个表达式,并执行它,并将命令的输出替换为表达式。cpanm的输出不会是shell命令,所以这是行不通的。它应该很简单
try cpanm Nagios::Confighttps://stackoverflow.com/questions/31305446
复制相似问题