如何检查 PPA 是否已添加到 bash 脚本中的 apt 源列表中

Jos*_*osh 11 command-line bash scripts

有人知道如何在我add-apt-repository使用shell script.

那会很有帮助。

谢谢你。

jan*_*nos 12

你可以这样做:

the_ppa=...  # e.g. the_ppa="ondrej/apache2"

if ! grep -q "^deb .*$the_ppa" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
    # commands to add the ppa ...
fi
Run Code Online (Sandbox Code Playgroud)

笔记:

  • grep 如果找到匹配项则成功退出
  • !此,因此,如果不存在匹配的命令将被执行=不添加PPA则无效
  • -q标志使grep quiet,因此它不会打印匹配的行。这只是噪音,我们只需要知道是否存在匹配,退出代码是完美的
  • ^deb .*前缀是确保匹配的行开头deb,以排除被注释掉线


rɑː*_*dʒɑ 4

打开终端并输入此命令

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger
Run Code Online (Sandbox Code Playgroud)

将 Fogger 替换为 PPA 名称。

在此输入图像描述


Bel*_*era 1

删除 list.save 文件、源,确保仅 deb 行并将其计为“fogger”ppa:

ppa_added=`grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v list.save | grep -v deb-src | grep deb | grep fogger | wc -l`

echo $ppa_added
Run Code Online (Sandbox Code Playgroud)