【发布时间】:2016-07-25 05:51:23
【问题描述】:
我是 bash 脚本的新手,想写一个简短的脚本来检查某个程序是否正在运行。如果它运行,脚本应该把窗口带到前台,如果它没有运行,脚本应该启动它。
#!/bin/bash
if [ "$(wmctrl -l | grep Wunderlist)" = ""]; then
/opt/google/chrome/google-chrome --profile-directory=Default --app-id=ojcflmmmcfpacggndoaaflkmcoblhnbh
else
wmctrl -a Wunderlist
fi
我的比较是错误的,但我什至不确定我应该用谷歌搜索什么来找到解决方案。我的想法是,如果窗口不存在,"$(wmctrl -l | grep Wunderlist)" 将返回一个空字符串。运行脚本时出现此错误:
~/bin » sh handle_wunderlist.sh
handle_wunderlist.sh: 3: [: =: argument expected
【问题讨论】:
-
shellcheck.net 会发现你的语法错误;不要使用
sh执行 Bash 脚本,因为sh不是(总是)Bash。
标签: bash scripting conditional