如何通过Bash命令获取已安装的Google Chrome发布渠道(优先返回最稳定版本)
如何通过Bash命令获取已安装的Google Chrome发布渠道(优先返回最稳定版本)
嘿,这个需求挺实用的!咱们可以按稳定版优先的顺序(stable > beta > dev > canary)逐个检查Chrome的各个发布渠道是否已安装,一旦找到第一个存在的渠道就返回它的名称,完美契合你的需求。
方法一:直观的多行脚本
这个写法清晰易懂,适合新手或者需要复用的场景:
# 按优先级定义Chrome渠道列表 for channel in google-chrome-stable google-chrome-beta google-chrome-dev google-chrome-canary; do # 检查当前渠道的可执行文件是否存在于系统PATH中 if command -v "$channel" >/dev/null 2>&1; then # 找到第一个匹配的渠道,输出名称并退出 echo "$channel" exit 0 fi done # 如果所有渠道都没找到,输出提示信息 echo "未找到任何Google Chrome发布渠道" >&2 exit 1
方法二:简洁的单行命令
如果只是想快速得到结果,可以用这个浓缩版:
channel=$(for c in google-chrome-stable google-chrome-beta google-chrome-dev google-chrome-canary; do command -v "$c" && break; done) && basename "$channel" || echo "未找到Chrome渠道"
方法三:可复用的Bash函数
要是你经常需要用到这个功能,把它写成函数会更方便:
get_chrome_channel() { # 定义优先级排序的渠道数组 local channels=("google-chrome-stable" "google-chrome-beta" "google-chrome-dev" "google-chrome-canary") for channel in "${channels[@]}"; do if command -v "$channel" >/dev/null 2>&1; then echo "$channel" return 0 fi done echo "未安装任何Google Chrome发布渠道" >&2 return 1 }
使用时只需要在终端里运行get_chrome_channel就能直接得到结果啦。
小细节说明
我这里用command -v而不是which来检查命令是否存在,是因为command -v是POSIX标准命令,在各种Bash环境下的行为更稳定一致,而which在不同系统上的输出逻辑可能有差异哦。
备注:内容来源于stack exchange,提问作者Mario Palumbo
相关产品推荐
相关产品推荐

