วิธีตรวจสอบว่ามีการเพิ่ม PPA ในรายการแหล่งที่มาของ apt ใน bash script หรือไม่


11

ทำคนรู้วิธีการตรวจสอบว่ามีการเพิ่ม PPA แล้วกับระบบของฉันก่อนที่ฉันจะเพิ่มกับคำสั่งในadd-apt-repositoryshell script

นั่นจะเป็นประโยชน์มาก

ขอบคุณ.

คำตอบ:


11

คุณสามารถทำสิ่งนี้:

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

หมายเหตุ:

  • grep ออกด้วยความสำเร็จหากพบการแข่งขัน
  • !ขัดแย้งนี้เพื่อให้คำสั่งจะถูกดำเนินการหากไม่มีการแข่งขัน = ppa ไม่ได้เพิ่ม
  • การ-qตั้งค่าสถานะทำให้grep เงียบดังนั้นจึงไม่พิมพ์บรรทัดที่ตรงกัน มันจะเป็นเพียงแค่เสียงรบกวนเราต้องการเพียงรู้ว่ามีการแข่งขันหรือไม่ซึ่งรหัสทางออกที่สมบูรณ์แบบ
  • ^deb .*คำนำหน้าเพื่อให้แน่ใจว่าเส้นตรงเริ่มต้นด้วยการdebที่จะไม่รวมเส้นที่จะออกความเห็น

ตามที่ปรากฏออกมาสิ่งนี้จะพบว่า ppas ที่ถูกคอมเม้นท์ แต่ฉันต้องการค้นหา PPA ที่ยังไม่ได้ถูกคอมเม้นต์และ @ Ten-Coins จะทำเช่นนั้น
Taytay

2

เปิดเทอร์มินัลของคุณและพิมพ์คำสั่งนี้

grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep fogger

แทนที่ Fogger ด้วยชื่อ PPA

ป้อนคำอธิบายรูปภาพที่นี่


1
ดีที่จะเห็น frogger ที่ยังมีชีวิตอยู่ผมคิดว่า grep ไม่ได้เป็นที่เหมาะสมสำหรับ soluthion ถ้างบภายในสคริปต์เปลือก
จอช

คุณสามารถค้นหาช่องด้วย awk ได้เช่นกัน ค่อนข้างเร็ว
rɑːdʒɑ

ฉันไม่คุ้นเคยกับ awk แต่ถ้าคุณมีทางออกอย่าลังเลที่จะโพสต์คำตอบของคุณและรับการทำซ้ำ ps ฉันชอบเรือเดินสมุทรหนึ่งลำสวยมาก
Josh

เนื่องจากฉันไปพักร้อนไม่สามารถโพสต์ได้โดยไม่ต้องทำการทดสอบอย่างถูกต้อง downvote นั้นมีไว้เพื่ออะไร?
rɑːdʒɑ

ฉันจะทดสอบสิ่งนี้ด้วยคำสั่ง if ในวันนั้น ขออภัยสำหรับ downvote ฉันไม่ได้อ่านกระทู้ตอนดึก ฉันคิดว่าสิ่งนี้ควรใช้งานได้และจะตอบสนองในภายหลังหากฉันได้ทดสอบคำสั่ง teh
Josh

0

การลบไฟล์ 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

นอกจากนี้ยังพบdebบรรทัดที่ใส่ความคิดเห็นเริ่มต้นด้วย# debและบรรทัดจากไฟล์เช่นfoo-ppa.list.distUpgrade- มีไว้เพื่ออะไร
Volker Siegel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.