gpt4 book ai didi

Bash - 为什么这个条件不做我认为应该做的事情?

转载 作者:行者123 更新时间:2023-12-04 06:17:38 25 4
gpt4 key购买 nike

这基本上是我在 bash 中的第一个脚本,所以我可能遗漏了一些非常简单的东西。

我不明白为什么"$(pgrep firefox)"即使 Firefox 没有运行,似乎也会返回一些东西。

该脚本应始终保持 Firefox 实例运行。

#!/bin/bash
while true;
do
if [ -z "$(pgrep firefox)" ]
then
echo "firefox not running. Starting now..."
firefox
fi
done

真正奇怪的是,如果我在 bash 命令提示符下输入它,它会按预期工作
if [ -z "$(pgrep firefox)" ];  then echo "not running"; fi

最佳答案

您是否尝试打印出 $(pgrep firefox) 的结果?查看返回的内容?

顺便说一下,您不需要在这里比较字符串。 pgrep如果找到进程,则返回 true,否则返回 false,因此您可以执行以下操作:

if ! pgrep firefox
then
echo firefox not running
fi

关于Bash - 为什么这个条件不做我认为应该做的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com