وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

اپراتورهای تغییر مسیر لینوکس Bash

0 3
زمان لازم برای مطالعه: < 1 دقیقه


در لینوکس، terminal همه چیز است، جایی است که ما دستورات را ارسال می کنیم، و جایی است که اسکریپت ها را ارسال می کنیم. بنابراین یکی از مهم ترین زبان های اسکریپت نویسی است bash. برنامه نویسی Bash برای خودکارسازی وظایف خسته کننده در لینوکس استفاده می شود. به منظور خودکارسازی وظایف، دستورات در داخل اسکریپت نوشته شده و پسوند .sh به آنها داده می شود. به عنوان بخشی از دستورات، از عملگرهای خاصی نیز استفاده می شود. این اپراتورها منحصر به فرد هستند bashو هر کدام معنای خاص خود را دارند. در این آموزش، عملگرهای تغییر مسیری که در طی آن با آنها مواجه شده اند را بررسی می کنیم bash اسکریپت و معنای خاص آنها.

اپراتور تغییر مسیر: <

نماد < برای تغییر مسیر ورودی استفاده می شود. برای مثال می توان از فایل ها به عنوان ورودی استفاده کرد. با این حال، در این مورد، تغییر مسیر ورودی یک تغییر مسیر فقط خواندنی است.

مثلا:

#! /صندوقچه/bash
گربه < file.txt

در این حالت file.txt به عنوان ورودی گرفته می شود و دستور cat سپس آن را خارج می کند.

اپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: <<

عملگر تغییر مسیر << به عنوان سند اینجا نیز شناخته می شود. سند here-document به شخص اجازه می دهد تا یک خط ورودی را در یک دستور در بسیاری از دستورات قرار دهد.

مثلا:

#! /صندوقچه/bash

گربه << EOF
خط اول
خط دوم
EOF

دستشویی << EOF
خط اول
خط دوم
EOF

خوب، بنابراین در اینجا، ما دو خط ورودی داریم. در بخش اول، ورودی را برای گربه می فرستیم، که گربه همه چیز را حذف می کند. و در قسمت دوم با دستور wc تعداد خطوط و کلمات و کاراکترها را می شماریم. در هر صورت، نکته این است که می‌توانیم به جای یک خط، چندین خط را به عنوان ورودی ارسال کنیم.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: >

این نماد که به عنوان عملگر تغییر مسیر فایل شناخته می شود، معمولاً برای تغییر مسیر محتویات یک دستور/فایل به دیگری استفاده می شود. رونویسی آی تی. حواستون باشه آن را بازنویسی می کند – به صورت پررنگ و مورب!

مثلا:

#! /صندوقچه/bash
اکو “سلام دنیا’ > file.txt

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

در اینجا، نماد > شبیه 1> است. این به این دلیل است که 1 یک توصیف کننده فایل برای خروجی استاندارد است. لطفا توجه داشته باشید که توضیحات فایل به شرح زیر است:

0 ورودی استاندارد، stdin
1 خروجی استاندارد، stdout
2 خطای استاندارد، stderr

در سناریوی قبلی، فلش تک رو به جلو معادل 1> بود. با این حال، ما همچنین می توانیم 2> را برای ارسال خطای استاندارد بنویسیم.

پیشنهاد می‌کنیم بخوانید:  بسط فرمان Bash

مثلا:

#! /صندوقچه/bash

mcat file.txt 2> file2.txt

در اینجا، 2> به این معنی است که خطای ایجاد شده در file2.txt ریخته می شود.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: >>

علامت >> برای الحاق و نه برای جایگزینی استفاده می شود! عملگر تغییر مسیر فایل > همه چیز را جایگزین یا بازنویسی می کند در حالی که >> برای الحاق استفاده می شود. دومی محتویات مشخص شده را به انتهای فایل اضافه می کند.

مثلا:

#! /صندوقچه/bash
اکو “این خط دوم است” >> file.txt
اکو “این خط سوم است” >> file.txt

دومی دو خط را به فایلی به نام file.txt اضافه می کند. نتیجه file.txt به صورت زیر خواهد بود:

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: |

عملگر تغییر مسیر | برای ارسال خروجی دستور اول به عنوان ورودی فرمان دوم استفاده می شود. به عنوان مثال، اگر من یک دستور اولیه را ارسال کنم و سپس با استفاده از | خروجی تولید شده توسط این دستور را “pipe” کنم عملگر را در یک فرمان دوم، به عنوان ورودی دریافت کرده و سپس پردازش می شود.

مثلا:

#! /صندوقچه/bash

ls-la | sed ‘s/bash/redirection_operator/

در اینجا sed با دستور s برای جایگزینی یک نام به جای نام دیگر استفاده می شود. بنابراین، sed’s/bash/redirection_operator/’ برای جایگزینی کلمه استفاده می شود bash با کلمه redirection_operator.

خب ما اینجا چیکار میکنیم؟ خوب، ‘ls -la’ همه چیز را با جزئیات فهرست می کند، و اپراتور لوله این را می گیرد و به دستور دوم ارسال می کند. فرمان دوم (sed’s/bash/redirection_operator/’) جایگزین کلمه خواهد شد bash با کلمه redirection_operator و آن را روی صفحه چاپ کنید.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: >&

این نماد هم خروجی استاندارد و هم خطای استاندارد را تغییر مسیر می دهد.

مثلا؛

bash ls -لا >& file.txt’

در این حالت، نماد >& هم خروجی استاندارد و هم خطای استاندارد را به فایلی به نام file.txt هدایت می کند. بنابراین، هم خروجی تولید شده و هم خطای ایجاد شده در یک فایل قرار می گیرند.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

حالا فرض کنید به جای آن این را بنویسیم:

bash میلی لیتر -لا >& file.txt’

در این حالت باید خطا ایجاد شود زیرا دستور mls وجود ندارد. در اینجا، خطا به سند file.txt نیز ارسال خواهد شد.

پیشنهاد می‌کنیم بخوانید:  راهنمای کامل آرایه های Bash

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: >|

مواقعی وجود دارد که به دلیل محدودیت فایل نمی توانید یک فایل را بازنویسی کنید. حال فرض کنید فایلی به نام file.txt دارید که قابل رونویسی نیست.

بنابراین دستور زیر در واقع یک فایل را بازنویسی نمی کند:

#! /صندوقچه/bash

اکو “سلام” > /tmp/file.txt

ما از عملگر >| استفاده می کنیم برای بازنویسی اجباری فایل در چنین مواردی.

در اینجا، موارد زیر را برای بازنویسی فایل به اجبار می‌نویسیم:

#! /صندوقچه/bash

اکو “سلام” >| /tmp/file.txt

اپراتور تغییر مسیر: &>>

اپراتور &>> خروجی استاندارد و خطای استاندارد را به فایل مشخص شده اضافه می کند.

سابق:

#! /صندوقچه/bash

lsl &>> file.txt

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

در این مثال، فایلی به نام file.txt داریم که شامل دو خط است. وقتی اسکریپت را اجرا می کنیم فراخوانی می شود bash.sh، که حاوی دستوری است که وجود ندارد، باید یک خطا ایجاد کند. این خطا پیدا شده و به file.txt اضافه می شود. اگر دستور حاوی هیچ خطایی نبود، آن را نیز می گرفت و می فرستاد تا به فایلی به نام file.txt اضافه شود.

اپراتور تغییر مسیر: <<-

عملگر تغییر مسیر <<- همه برگه ها را از یک ورودی چند خطی حذف می کند.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

مثلا:

#! /صندوقچه/bash

بیشتر <<- EOF
خط اول
خط دوم
EOF

در اینجا زبانه هایی قبل از دو خط ورودی (خط اول، خط دوم) وجود دارد. اما زمانی که خروجی تولید می شود، زبانه ها نادیده گرفته می شوند.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

اپراتور تغییر مسیر: <>

عملگر تغییر مسیر <> یک فایل را برای خواندن و نوشتن باز می کند.

اپراتورهای تغییر مسیر لینوکس Bashاپراتورهای تغییر مسیر لینوکس Bash

برنامه نویسی Bash یک زبان برنامه نویسی کلیدی است که می تواند برای خودکارسازی وظایف استفاده شود. در حین bash اسکریپت نویسی، ما با کدهای زیادی مواجه می شویم، اما با عملگرهای تغییر مسیر نیز مواجه می شویم که منحصر به فرد هستند bash. این اپراتورها هر کدام نقش خاصی در آن دارند bash اسکریپت نویسی، و همیشه واضح نیستند. در این آموزش، چند عملگر تغییر مسیر مورد استفاده در هنگام نوشتن را بررسی کردیم bash اسکریپت ها بدیهی است که بسیاری از اپراتورهای تغییر مسیر وجود دارند. با این حال، برخی از آنها به قدری مکرر مواجه می شوند که ممکن است نیاز به دانستن آنها باشد bash اسکریپت نویسی بنابراین، بدون ترس از اپراتورهای تغییر مسیر از اینجا به بعد، جلو بروید!

کد نویسی مبارک!

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-30 04:14:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید