小编Mar*_*oft的帖子

bash 中反引号的评估

我对 bash 中反引号的评估感到困惑。我以前见过这样的代码,这是有道理的:

RESULT=`whoami`
Run Code Online (Sandbox Code Playgroud)

这将whoami命令的输出存储在RESULT变量中,并确认反引号计算为其中的命令输出。但我也看到过如下代码:

if `wget google.com -T 2 -t 1 -o /dev/null`; then 
   echo "Internet ok"
fi
Run Code Online (Sandbox Code Playgroud)

这是通过尝试获取 google 主页来测试互联网连接(-t 1一次尝试,-T 2一次 2 秒超时,并重定向到,/dev/null因为它实际上并不想要输出,而只是想看看它是否成功)。代码读起来好像作者期望反引号将评估为wget命令的退出代码而不是输出。

但它确实有效。它打印Internet ok是否可以连接到 google.com,如果我将 url 更改为一些不存在的无意义 url,它不满足 if 语句并且不打印任何内容。我不明白为什么这有效。

wget使用有效和无效的 url独立运行命令在两种情况下都不会打印任何内容,只是退出代码有所不同。

我的结论是,if后跟反引号有一个特殊的构造,它返回退出代码而不是输出。我错了吗?

linux bash

2
推荐指数
1
解决办法
2305
查看次数

没有适用于 RHEL 6 的 Tomcat7 包

我们目前正在 Rackspace 上设置一个新的应用程序托管环境,并且正在努力寻找适用于 Tomcat 7 的软件包。

我们之前的提供商是 Amazon,我们在 Amazon Linux 上运行,他们通过他们的 amzn-updates-Base 存储库提供了我们正在使用的 Tomcat 7 包。我们的新提供商 Rackspace 让我们在 RHEL 6.4 上进行设置。显然,我们使用的 RedHat EUS 服务器存储库只有 Tomcat 6 可用。我们还检查了 Rackspace IUS 存储库和 Fedora 的 EPEL(Linux 额外软件包)存储库,但似乎都没有适用于 Tomcat 7 的软件包。

我们很清楚 Tomcat 是 Java,因此不依赖于特定的体系结构,并且网上有许多“如何在 linux 上安装 Tomcat 7”教程,但它们只是一些随机工程师采取的步骤,然后将其发布到他们的博客。走这条路线似乎是利用维护包的一大退步:1) 我们知道设置正确、安全和 2) 我们可以通过 yum with 接收更新。

Tomcat 7 已经发布 3 年了,实际上 Tomcat 8 现在处于测试阶段。我很惊讶像 RedHat 这样的大型组织都没有选择第 7 版。所以,请问大家:您会建议我们(以及其他处于类似情况的人)如何进行?

我们看到的选项是:

  1. 自己手动下载、设置启动脚本、用户帐户等,并以不同的时间间隔检查是否有任何更新(安全或其他)。这里的问题是我们是否做对了。

  2. 使用 Tomcat 6 包 - 版本 7 似乎没有太大的变化,但我们没有用这个版本测试我们的产品,并且不想在两个应用程序服务器版本环境中测试我们的应用程序。

  3. 继续寻找合适的 tomcat 7 包 - 似乎我们不太可能找到任何可信的东西。 …

redhat tomcat rpm

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

linux ×1

redhat ×1

rpm ×1

tomcat ×1