.TH REDO-WHICHDO 1 2021-07-27 "Redo 0.42d" "User Commands" .ad l .nh .SH "نام (NAME)" redo-whichdo \- نمایش مسیر جستجوی redo برای یک فایل .do .SH "خلاصه دستور (SYNOPSIS)" redo-whichdo .SH "توضیحات (DESCRIPTION)" \fBredo\fR(1) و \fBredo-ifchange\fR(1) اهداف خود را با اجرای یک اسکریپت «فایل .do» با آرگومان‌های مناسب می‌سازند. فایل‌های .do با شروع از دایرکتوری حاوی هدف جستجو می‌شوند، و در صورت پیدا نشدن در آنجا، در سلسله‌مراتب درخت دایرکتوری به سمت بالا جستجو می‌شوند تا زمانی که یک مورد منطبق پیدا شود. .PP برای کمک به اشکال‌زدایی اسکریپت‌هایتان هنگامی که redo از یک فایل .do غیرمنتظره استفاده می‌کند، یا برای نوشتن اسکریپت‌های پیشرفته‌ای که از یک فایل .do به فایل دیگری «پروکسی» می‌شوند، می‌توانید از \fBredo-whichdo\fR برای مشاهدهٔ مسیر جستجوی دقیقی که \fBredo\fR به کار می‌برد، استفاده کنید. .PP قالب خروجی، فایل‌های .do بالقوه را در هر خط یکی، به ترتیب اولویت و جداشده با نویسه‌های خط جدید فهرست می‌کند، و به محض پیدا شدن یک فایل .do منطبق، متوقف می‌شود. اگر کد بازگشتی صفر باشد، آخرین خطْ یک فایل .do است که در واقعیت وجود دارد؛ در غیر این صورت، کل مسیر جستجو تا انتها بررسی (و چاپ) شده است. .SH "مثال (EXAMPLE)" در اینجا یک مسیر جستجوی معمول برای یک فایل منبع (\fBx/y/a.b.o\fR) آمده است. از آنجا که نام فایل شامل دو نقطه (.) است، در هر سطح از سلسله‌مراتب، \fBredo\fR باید \fBdefault.b.o.do\fR، \fBdefault.o.do\fR و \fBdefault.do\fR را جستجو کند. ```sh $ redo-whichdo x/y/a.b.o; echo $? .RS +4n .nf .PP x/y/a.b.o.do x/y/default.b.o.do x/y/default.o.do x/y/default.do x/default.b.o.do x/default.o.do x/default.do default.b.o.do default.o.do 0 .fi .RE .PP \fB`` شما می‌توانید از \fRredo-whichdo\fB برای واگذاری از یک اسکریپت .do به دیگری، با استفاده از کدی شبیه به زیر استفاده کنید. این کار کمی پیچیده است زیرا نه‌تنها یک فایل .do جدید پیدا می‌کنید، بلکه باید با \fRcd\fB به دایرکتوری فایل .do رفته و مقادیر \fR$1\fB و \fR$2` را به‌طور مناسب تنظیم نمایید. .RS +4n .nf .PP ofile=$PWD/$3 x1=$1 cd "$SRCDIR" redo-whichdo "$x1" | { ifcreate= while read dopath; do if [ ! -e "$dopath" ]; then ifcreate="$ifcreate $dopath" else redo-ifcreate $ifcreate redo-ifchange "$dopath" dofile=${dopath##*/} dodir=${dopath%$dofile} # Create updated $1 and $2 for the new .do file x1_rel=${x1#$dodir} ext=${dofile##*default} if [ "$ext" != "$dofile" ]; then ext=${ext%.do} else ext='' fi x2_rel=${x1#$dodir} x2_rel=${x2_rel%$ext} cd "$dodir" set -- "$x1_rel" "$x2_rel" "$ofile" . "./$dofile" exit fi done exit 3 } .fi .RE .SH REDO بخشی از مجموعهٔ \fBredo\fR(1). .SH CREDITS ایدهٔ اولیهٔ \fBredo\fR توسط D. J. Bernstein خلق شد و در وبگاه او (http://cr.yp.to/redo.html) مستند گردید. این پیاده‌سازی مستقل توسط Avery Pennarun ایجاد شده است و می‌توانید کد منبع آن را در http://github.com/apenwarr/redo بیابید. .SH "همچنین ببینید (SEE ALSO)" \fBredo\fR(1), \fBredo-ifchange\fR(1), \fBredo-ifcreate\fR(1) .SH "نویسنده (AUTHOR)" Avery Pennarun