إذا كنت تستخدم Bash shell لفترة زمنية مناسبة ، فمن المحتمل أنك تعرف كيفية طباعة السلاسل في محطة Linux باستخدام أمر echo. ومع ذلك ، فإن الأمر printf يجعل طباعة النص بتنسيق معين أسهل بكثير.
سنتعلم اليوم كيفية الاستفادة من وظيفة printf لتحسين مهاراتنا في البرمجة النصية Bash.
ما هي وظيفة Bash printf؟
كما يوحي الاسم ، فإن printf هي وظيفة تطبع سلاسل نصية منسقة. هذا يعني أنه يمكنك كتابة بنية سلسلة (التنسيق) وتعبئتها لاحقًا بالقيم (الوسيطات).
إذا كنت معتادًا على لغات البرمجة C / C ++ ، فقد تعرف بالفعل كيفية عمل printf. إن Printf في غلاف Bash متشابه جدًا ، لكن لديه بعض الاختلافات الصغيرة.
يتعلم أكثر: أفضل المواقع للبدء في برمجة C ++
كيفية استخدام printf في Bash Shell
الصيغة الأساسية لـ printf هي:
printf format [argument]
سيقوم Printf بطباعة ملف صيغة السلسلة أثناء التنفيذ التسريبات ( ) و التوجيهات ( ٪ ) من خلال استخدام المحدد الحجج . لاحظ إخراج الأمر التالي:
$ printf 'Hello, %s' world
Hello, world
تولى Printf العالمية حجة واستبدال ٪س حرف في السلسلة المحددة معه.
قد تلاحظ أنه بعد الإخراج ، لا يقوم Bash بإنشاء سطر جديد لك. بخلاف أمر echo ، لن تفترض printf أنك تريد سطرًا جديدًا بعد طباعة الإخراج. وبالتالي ، ستحتاج إلى استخدام حرف الخط الجديد ن في كل حالة.
لطباعة سلسلة ثم الانتقال إلى سطر جديد ، اكتب printf 'مرحبًا ، العالم n' .
Hello, world
من المهم أن تضع في اعتبارك أن printf ستحاول إعادة استخدام التنسيق لجميع الحجج الخاصة بك. يمكنك استخدام هذا لصالحك ، ولكن إذا لم تكن حريصًا ، فيمكنك الحصول على نتائج مثل هذه:
$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor
يجب أن تدرك أيضًا أنه في حالة عدم وجود وسيطة ، فسوف تفسر printf أي توجيهات على أنها 0 (لعدد) و باطل (لسلسلة).
$ printf 'Hello, %s.'
Hello, .
الآن بعد أن عرفت كيف تعمل Bash scripting مع printf في Linux ، فأنت جاهز لبدء استخدامه في أوامرك.
أمثلة على Linux Bash printf
يتميز Printf بالعديد من محددات التنسيق التي يمكنك استخدامها في البرامج النصية الخاصة بك. لكننا سنغطي اليوم بعض العناصر الشائعة فقط للوظيفة.
1. تنسيق الإخراج بسلسلة
لتنسيق الإخراج بسلاسل نصية ، استخدم ملف ٪س التوجيه.
$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.
2. تنسيق سلسلة الإخراج مع الكسور العشرية
لتنسيق سلسلة بعدد صحيح ، يمكنك استخدام ٪د توجيه للحصول على علامة عشرية موقعة.
$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.
لاحظ أنه إذا كنت تريد استخدام رقم عشري غير موقع في الإخراج ، فسيتعين عليك استخدام ملحق ٪ u التوجيه بدلا من ذلك.
كيفية تقليل استخدام القرص على نظام التشغيل windows 10
متعلق ب: ماذا تعني كلمة 'Bash' في لينكس؟
3. إخراج وظائف الرياضيات باستخدام printf
يعد تنسيق وظائف الرياضيات باستخدام الأمر printf أمرًا سهلاً. فقط ضع تعبيرك داخل أقواس مزدوجة كما تفعل عادةً في Bash ، وحدد التعبير في قائمة الوسائط.
$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2
4. تنسيق الأعداد السداسية العشرية
إذا كنت بحاجة إلى تنسيق رقم سداسي عشري ، فاستخدم ٪ x للحروف الصغيرة و ٪ X للأحرف الكبيرة.
$ printf %X 1000
3E8C
5. طباعة التاريخ والوقت
لطباعة التاريخ والوقت الحاليين ، يمكنك دمج printf مع ملف تاريخ الأمر وتمرير التوجيهات التالية.
$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57
يمكنك رؤية محددات التنسيق للشهر واليوم والسنة والساعة والدقيقة والثانية في الإخراج المذكور أعلاه.
6. تنسيق السلاسل بأحرف Unicode
لطباعة أحرف Unicode باستخدام printf ، استخدم ملحق u الهروب لـ Unicode 16 بت و يو لـ 32 بت Unicode.
على سبيل المثال ، يمكنك طباعة ملف حقوق النشر مع الأمر التالي:
$ printf 'u00A9'
©
7. إضافة التباعد إلى الإخراج
يمكنك تنسيق السلاسل الخاصة بك بمسافات من خلال تحديد الحد الأدنى لعدد الأحرف المطبوعة قبل محدد التوجيه. سيتم ملء الأحرف غير المستخدمة بمسافات.
على سبيل المثال ، الكتابة printf '٪ s:٪ 5d n' 'القيمة 1' 25 'القيمة 2' 120 سيخرج:
Value 1: 25
Value 2: 120
ال %5d يشير محدد التنسيق في الإخراج إلى أن السلسلة المنسقة ستحتوي على خمسة أحرف على الأقل. نظرًا لأن الرقم 25 يتكون من رقمين فقط ، يتم إضافة مسافات إلى الأحرف المتبقية.
إذا قمت بتمرير رقم سالب كعرض ، فسيكون التوجيه مضبوطًا إلى اليسار بدلاً من ضبطه لليمين.
$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120
إذا كنت تريد عمل متغير العرض ، فيمكنك تمرير علامة النجمة بدلاً من رقم ، وسيستخدم printf الرقم التالي الذي يعثر عليه في قائمة الوسائط.
$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120
متعلق ب: كل ما تحتاج لمعرفته حول Bash For Loops في Linux
تعلم أمر Linux printf
باستخدام الأمر printf في حزام الأداة المساعدة Bash scripting ، فأنت جاهز لبدء طباعة سلاسل معقدة ومتنوعة في جهازك. أثناء قيامك بتطوير برامج Bash النصية الخاصة بك ، من المهم التأكد من أنك تعمل في أكثر بيئة إنتاجية ممكنة. لن يؤدي ذلك إلى تحسين مهارات سطر الأوامر فحسب ، بل سيعزز أيضًا سير عملك بشكل عام.
يشارك يشارك سقسقة بريد الالكتروني أفضل 10 توزيعات Linux للمطورينهل أنت جاهز لبدء التطوير على نظام تشغيل مفتوح المصدر؟ فيما يلي أفضل توزيعات Linux للبرمجة.
ما هو الأمر الذي يجب عليك إدخاله لرؤية قائمة بجميع الأوامر التي استخدمتها مؤخرًااقرأ التالي مواضيع ذات صلة
- لينكس
- لينكس باش شل
- أوامر لينكس
جوردان كاتب في MUO متحمس لجعل Linux سهل الوصول إليه وخالي من الإجهاد للجميع. كما أنه يكتب أدلة حول الخصوصية والإنتاجية.
المزيد من Jordan Gloorاشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
انقر هنا للاشتراك