تغییر مسیر خروجی استاندارد یک فرمان منفرد به همین آسانی است:
date > file
برای تغییر مسیر خروجی استاندارد خطا:
date 2> file
برای تغییر مسیر هردو:
date > file 2>&1
یا، روش تفننیتر:
# اما غیرقابل حمل date > file 2>&1 معادل با ,Bash فقط در date &> file
تغییر مسیر کل یک حلقه:
for i in $list; do echo "Now processing $i" # more stuff here... done > file 2>&1
به هرحال، اگر باید خروجی فرمانهای بسیاری تغییر مسیر داده شود، این روش میتواند کسل کننده گردد. اگر تمام خروجی یک اسکریپت باید به یک فایل(به عنوان مثال فایل log بروند)، فرمان exec میتواند به کار برود:
# "log.txt" تغییر مسیر هردو خروجی استاندارد وخطا به فایل exec > log.txt 2>&1 # میروند "log.txt" تمام خروجی از جمله خطای استاندارد اکنون به فایل
در غیر آن صورت، گروهبندی فرمانها، کمک میکند:
{ date # some other commands echo done } > messages.log 2>&1
در این مثال، خروجی تمام فرمانهای درون ابروها به فایل messages.log تغییر مسیر داده میشود.
پرسش و پاسخ 14 (آخرین ویرایش 2010-07-01 13:04:42 توسط GreyCat)