如何仅获取wp.pages().slug( 'about' )
状态命令的状态?
例如,在下面的输出中,我只想使用“ running”一词
apachectl
我设法通过以下命令获得了正常运行时间:
Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago
但是,我不能适应此命令来获取状态。
答案 0 :(得分:1)
您实际上应该以这种方式执行此操作。 is-active
是获取systemctl服务状态的准确命令。
[[ $(sudo systemctl is-active test.service) == "active" ]] && echo "Running." || echo "NOT runnnig."
或更清楚地是:
[[ $(sudo systemctl is-active test.service) == "active" ]]\
&& echo "Running." || echo "NOT runnnig."
按照Ed先生的评论,或者更安全的选择将使用常规的if
和else
选项,如下所示。
if [[ $(sudo systemctl is-active test.service) == "active" ]]
then
echo "Running."
else
echo "NOT runnnig."
fi
在systemctl的手册页中:
是活动模式...检查是否有任何指定的单位 有效(即正在运行)。如果至少一个是退出代码,则返回退出代码0 有效,否则为非零。除非指定了--quiet,否则将 还将当前单位状态打印到标准输出。
答案 1 :(得分:1)
使用echo '...'
代替我没有的apachectl status
:
$ echo 'Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago' |
awk -F'[()]' '{print $2}'
running
您问题中的sed命令管道存在语法错误,当我尝试修复它们时,我只会得到输出min ago
:
$ echo 'Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago' |
sed -n '/ago$/p' | sed 's/.\{62\}//'
min ago
如果这是您想要的输出,请使用idk,但请考虑:
$ echo 'Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago' |
awk -F'; ' '{print $NF}'
22min ago
我也有鸡
答案 2 :(得分:1)
如果apachectl status
产生Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago
,则您的问题-获取第一个括号之间的字符串-可以解决
apachectl status | sed -n 's/[^(]*(\([^()]*\)).*/\1/p'`
echo "Active: active (running) since Thu 2019-12-05 08:23:56 -03; 22min ago" | sed -n 's/[^(]*(\([^()]*\)).*/\1/p'
# => running
模式匹配:
[^(]* - from start till first (
( - ( char
\([^()]*\) - a capturing group matching substring inside parentheses
) - ) char
.* - up to the string end
-n ... p
打印结果。