سلام
بهترین راه و البته مطمئن ترین راه استفاده از سوییچ های -q و -qq و -qqq هستش که نمونه ی دستورات رو پایین می ذارم :
که خودتون می تونین با تست کردن این سه سوییچ تفاوتشون رو شهودی ببینین :
sudo apt update
sudo apt -q update
sudo apt -qq update
sudo apt -qqq update
sudo apt install pkgname
sudo apt -q install pkgname
sudo apt -qq install pkgname
sudo apt -qqq install pkgname
در واقع این سوییچ ها در کنار قابلیت interactive (تعاملی) که می دن با سطوح های مختلف مقداری از خروجی apt رو حذف می کنن
ولی چون شما گفتین برای script نویسی می خواین بهتره در کنار این سوییچ ها از سوییچ -y هم استفاده کنین چون برای دانلود نرم افزارها apt از شما تایید می خواد :
Do you want to continue? [Y/n]
ولی تو اسکریپت این تایید گرفتن زیاد وجه مناسبی نداره برای همین می تونین این تایید رو از قبل داده باشین
(دقت کنین که بعضی از اسکریپت نویس ها می یان پا رو فراتر می ذارن و برای این کار از سوییچ های --yes --force-yes استفاده می کنن
ولی من به هیچ وجه استفاده از این سوییچ ها رو توصیه نمی کنم چون هر سوالی که پرسیده بشه رو با yes ادامه می ده و این ممکنه باعث به خطر انداختن سیستم بشه)
پس دستوری که من توصیه می کنم این شکلیه :
sudo apt -qqq install -y pkgname
در ادامه یه راه دیگه رو معرفی می کنم که این راه رو اصلا توصیه نمی کنم چون دیگه قابلیت تعاملی رو به کیفیتی که دستور قبل داشت رو نداره و بسیاری از خظاها و یا هشدارها دیگه قبل رویت نخواهند بود در صورتی که -q خطا ها رو به نمایش می ذاشت :
-qq No output except for errors
و اما این راه غلط :
sudo apt update > /dev/null
sudo apt install -y pkgname > /dev/null
تو این راه غلط ما میام و خروجی دستور رو به ناکجاآباد (/dev/null) هدایت می کنیم ولی اگه این دستور رو امتحان کنین می بینین که تنها یک هشدار با این شکل ایجاد می شه :
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
همون طور که می بینین خود apt هم می گه که صورت پایداری رو تو این حالت نداره ولی بعضی از اسکریپت نویس ها به جای پند گرفتن میان , برای ندین این هشدار یک اشتباه دیگه رو هم انجام می دن :
sudo apt-get update > /dev/null
و یا این شکلی میان و فقط صورت مسئله رو پاک می کنن :
sudo apt update > /dev/null 2> /dev/null
که در واقع تو اینجا میان و خروجی هشدار رو هم به ناکجاآباد هدایت می کنن
ولی شاید این سوال براتون پیش بیاد که چرا apt-get اون هشدار رو به نمایش نمی ذاره ؟
برای جواب به این سوال اول لازمه که درمورد تفاوت apt و apt-get یه چیزایی رو بگم :
apt-get مربوط به back-end هستش و در واقع تو ورژن های جدید برای انسان بهینه نشده و در واقع ماهیت low-level پیدا کرده
apt دقیقا برای کاربر انسانی ساخته شده و در واقع ماهیت end-user داره پس نسبت به apt-get نسبت اعمال انسانی هوشمندتر عمل می کنه
The `apt` command is meant to be pleasant for end users and does not need
to be backward compatible like apt-get.
همون طور که بالا گفتم apt-get برای انسان بهینه نشده پس هوشمندی لازم رو تو فهمیدن اینکه خروجی توسط انسان redirect شده یا نه رو نداره پس نمی دونه و در نتیجه نمی تونه که خطا و یا هشداری رو به نمایش بذاره