这基本上是我在bash中的第一个脚本,所以我可能会遗漏一些非常简单的东西。
我不明白为什么即使firefox没有运行,"$(pgrep 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
答案 0 :(得分:3)
您是否尝试打印$(pgrep firefox)
的结果以查看返回的内容?
顺便说一下,你不需要在这里比较字符串。如果找到进程,pgrep
将返回true,否则返回false,因此您可以执行此操作:
if ! pgrep firefox
then
echo firefox not running
fi