نوشتن در فایل با استفاده از Bash

https://negarnovin.com/docs/how-to-write-to-a-file-in-bash/ · آخرین به‌روزرسانی: · نویسنده: نگارنوین · سایت: نگارنوین · 6 دقیقه مطالعه

📌 خلاصه (TL;DR)

How to Write to a File in Bash روش‌ مختلف نوشتن در فایل‌ها در Bash از جمله تغییر مسیر tee، Heredoc، حلقه‌ها و توصیف‌گرهای فایل بیاموزید

📊 حقایق کلیدی

URLhttps://negarnovin.com/docs/how-to-write-to-a-file-in-bash/
تاریخ انتشار2025-09-08
آخرین به‌روزرسانی2025-09-08
نویسندهنگارنوین
ناشرنگارنوین
زبانفارسی (fa-IR)
تعداد کلمات1013
نوع صفحهبرگه

📄 محتوای کامل

نحوه نوشتن در فایل در Bash روش‌های مختلف نوشتن در فایل‌ها در Bash، از جمله تغییر مسیر، tee، Heredoc، حلقه‌ها و توصیف‌گرهای فایل را بیاموزید.

نوشتن در فایل‌ها یک کار اساسی در اسکریپت‌نویسی Bash است. می‌توانید از آن برای ذخیره خروجی برنامه، ذخیره ورودی کاربر یا ایجاد فایل‌های پیکربندی استفاده کنید. دانستن نحوه نوشتن در یک فایل با استفاده از Bash برای کارهای اتوماسیون و اسکریپت‌نویسی مفید است.

این مقاله روش‌های مختلفی برای نوشتن در فایل‌ها در Bash را پوشش می‌دهد، از تغییر مسیر ساده گرفته تا استفاده از حلقه‌ها و جایگزینی فرمان برای کارهای پیشرفته‌تر.

استفاده از تغییر مسیر خروجی

در Bash، می‌توانید از عملگرهای تغییر مسیر خروجی >و >>برای نوشتن در یک فایل استفاده کنید.

بازنویسی فایل با استفاده از>

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

کنسولکپی
$ echo "Hello from negarnovin!" > output.txt

این دستور:

  • output.txtاگر وجود نداشته باشد، ایجاد می‌کند و می‌نویسد Hello from negarnovin!.
  • اگر فایل وجود داشته باشد، محتوای آن با جایگزین می‌شود Hello from negarnovin!.

اضافه کردن به فایل با استفاده از>>

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

کنسولکپی
$ echo "Greetings from negarnovin!" >> output.txt

این خط را Greetings from negarnovin!به انتهای اضافه می‌کند output.txtو محتوای موجود را حفظ می‌کند. این به حفظ گزارش‌ها یا ذخیره تدریجی داده‌ها در یک فایل کمک می‌کند.

نوشتن خروجی یک دستور در یک فایل

شما می‌توانید خروجی هر دستوری را به یک فایل هدایت کنید.

  • یک فایل را با خروجی دستور بازنویسی می‌کند. کنسولکپی
    $ ls -l /home/user > bash_file.txt

    این دستور لیست فایل‌های موجود در /home/userدایرکتوری را در ذخیره می‌کند و bash_file.txtمحتوای موجود را جایگزین می‌کند.

  • یک فایل به خروجی دستور پیوست کنید. کنسولکپی
    $ df -kh >> bash_file.txt

    این کار محتوای موجود را نگه می‌دارد و ورودی‌های جدید را به انتهای فایل اضافه می‌کند.

  • همچنین می‌توانید هم خروجی استاندارد و هم خطای استاندارد را به یک فایل تغییر مسیر دهید. در Bash، 1‎stdout‎ و 2‎stderr‎ را نشان می‌دهد. کنسولکپی
    $ ls /home/user /nonexistent > bash_output.txt 2>&1

    در اینجا، 2>&1خطای استاندارد (stderr) را به همان محل stdout تغییر مسیر می‌دهد. این کار هنگام گرفتن خروجی کامل دستور، از جمله خطاها، مفید است.

teeبرای نوشتن و نمایش خروجی استفاده می‌شود

  • این teeدستور به شما امکان می‌دهد خروجی را هم در ترمینال و هم در یک یا چند فایل بنویسید. کنسولکپی
    $ echo "Logged line" | tee bash_log.txt
  • برای اضافه کردن به جای بازنویسی، از -aپرچم استفاده کنید. کنسولکپی
    $ echo "Another line" | tee -a bash_log.txt

    این قابلیت هنگام اشکال‌زدایی یا زمانی که خروجی نیاز به ذخیره و نظارت همزمان دارد، مفید است.

از یک سند اینجا استفاده کنید

Heredoc به شما امکان می‌دهد متن چندخطی را به یک دستور ارسال کنید. می‌توانید از آن به همراه catیا teeبرای نوشتن محتوای چندخطی در یک فایل در Bash استفاده کنید. این دستور با ‎ ‎ شروع می‌شود و <<به دنبال آن جداکننده مشخص شده (مثلاً EOF‎) قرار می‌گیرد.

bashکپی
cat <<EOF > bash_config.txt
server=localhost
port=8080
enabled=true
EOF
  • Heredoc را شروع <<EOFمی‌کند و EOFبه عنوان جداکننده تعریف می‌شود، به این معنی که دستور خط را تا زمانی که با مواجه شود، می‌خواند EOF.
  • >تغییر مسیر خروجی است .

این دستور bash_config.txtبلوک پیکربندی مشخص شده را ایجاد یا با آن رونویسی می‌کند.

اگر می‌خواهید خطوط را به جای رونویسی، اضافه کنید، از >>redirector استفاده کنید.

bashکپی
cat <<EOF >> bash_config.txt
# Additional settings
log_level=debug
EOF

با استفاده از این روش، اسکریپت می‌تواند فایل‌های پیکربندی ساختاریافته تولید کند.

نوشتن در فایل در یک حلقه

شما می‌توانید چندین بار درون یک حلقه در یک فایل بنویسید. این برای تولید لاگ‌ها یا ایجاد فایل‌های ساختاریافته مفید است.

bashکپی
for i in {1..3}; do
    echo "Line $i" >> bash_loop_output.txt
done

هر تکرار حلقه یک خط جدید به اضافه می‌کند bash_loop_output.txt.

مدیریت خطاها هنگام نوشتن در فایل‌ها

این بخش نحوه مدیریت اسکریپت را در زمانی که عملیات نوشتن در اسکریپت شما با شکست مواجه می‌شود، نشان می‌دهد.

  • برای اطمینان از موفقیت‌آمیز بودن نوشتن، وضعیت خروج دستور را بررسی کنید. bashکپی
    echo "Test write" > bashfile.txt
    if [ $? -eq 0 ]; then
        echo "Write successful."
    else
        echo "Write failed."
    fi

    این $?متغیر وضعیت خروج دستور قبلی را ذخیره می‌کند. همچنین می‌توانید set -eقبل از دستور write یک خط اضافه کنید. این کار باعث می‌شود در صورت عدم موفقیت هر دستوری، اجرای اسکریپت متوقف شود.

  • همچنین می‌توانید قبل از اقدام به نوشتن، مجوزهای فایل را با استفاده از بررسی کنید -w. bashکپی
    if [ -w bashfile.txt ]; then
        echo "Writable"
    else
        echo "No write permission"
    fi

    این بررسی می‌کند که آیا bashfile.txtقابل نوشتن است یا خیر و بر اساس آن پیامی را خروجی می‌دهد.

استفاده از توصیف‌ گرهای فایل برای کنترل پیشرفته

اگر اسکریپت شما خروجی را در چندین فایل (یا جریان خروجی) می‌نویسد، می‌توانید با استفاده از execدستور، آنها را با یک مقدار عددی برچسب‌گذاری کنید. این یک توصیف‌گر فایل ایجاد کرد. برای بستن آن، باید یک خط اضافه کنید exec <descriptor>&-.

همانطور که قبلاً ذکر شد، در Bash، 1‎ نشان دهنده stdout و 2stderr است. بنابراین می‌توانید به جریان‌های خروجی خود مقادیری بزرگتر از ‎ اختصاص دهید 2.

bashکپی
exec 3> bash_custom_output.txt
echo "Writing with FD 3" >&3
exec 3>&-
  • این توصیفگر فایل را 3برای نوشتن باز می‌کند
  • Writing with FD 3برایش می‌نویسد .
  • توصیفگر فایل را می‌بندد 3.

نتیجه‌ گیری

اکنون شما روش‌های مختلف نوشتن در فایل‌ها در Bash را درک می‌کنید – از تغییر مسیر و خروجی دستور گرفته تا استفاده از teeحلقه‌ها، Heredoc و توصیف‌گرهای فایل. ترکیب این تکنیک‌ها را برای ساخت اسکریپت‌های قدرتمندتر و انعطاف‌پذیرتر تمرین کنید.

🏷️ کلمات کلیدی

نوشتن در فایل با استفاده از Bash، نحوه نوشتن در فایل در Bash، استفاده از تغییر مسیر خروجی، نوشتن خروجی یک دستور در یک فایل، خرید نوشتن در فایل با استفاده از Bash، قیمت نوشتن در فایل با استفاده از Bash، بهترین نوشتن در فایل با استفاده از Bash

🧩 JSON-LD

{"@context":"https://schema.org","@type":"WebPage","headline":"نوشتن در فایل با استفاده از Bash","url":"https://negarnovin.com/docs/how-to-write-to-a-file-in-bash/","datePublished":"2025-09-08T09:32:59+03:30","dateModified":"2025-09-08T09:32:59+03:30","author":{"@type":"Person","name":"نگارنوین"},"publisher":{"@type":"Organization","name":"نگارنوین"},"inLanguage":"fa-IR","description":"How to Write to a File in Bash روش‌ مختلف نوشتن در فایل‌ها در Bash از جمله تغییر مسیر tee، Heredoc، حلقه‌ها و توصیف‌گرهای فایل بیاموزید"}