.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "FISH-FOR-BASH-USERS" "1" "2026-09-07" "4.9" "fish-shell" .SH "نام (NAME)" fish-for-bash-users \- راهنمای مهاجرت و تفاوت‌های پوسته فیش برای کاربران بش .SH "توضیحات (DESCRIPTION)" این راهنما برای ارائه یک دید کلی و سریع به کاربرانی است که از پوسته .B bash (یا با شدتی کمتر از سایر پوسته‌ها مانند .B zsh یا .BR ksh ) به فیش مهاجرت کرده‌اند و می‌خواهند تفاوت‌های آن را بشناسند. پوسته .B fish عمداً با استاندارد POSIX سازگار نیست و به همین دلیل برخی از مواردی که به آن‌ها عادت دارید، در اینجا به شکلی متفاوت کار می‌کنند. .sp بسیاری از امکانات مشابه هستند \- هر دو در اصل خطوط فرمان را برای اجرای دستورات بسط می‌دهند، دارای پایپ‌ها (لوله‌ها)، تغییرمسیرها، متغیرها، الگوهای عام (globs) بوده و از خروجی دستورات به روش‌های گوناگون بهره می‌برند. این سند برای نمایش سریع تفاوت‌ها نگاشته شده است. .SH "جایگزینی دستورات (COMMAND SUBSTITUTIONS)" پوسته .B fish جایگزینی دستورات را به صورت \fB$(command)\fP یا \fB(command)\fP می‌نویسد، و نه به صورت بک‌تیک \fB\(gacommand\(ga\fP\&. .sp علاوه بر این، فیش خروجی را به جای استفاده از متغیر $IFS فقط بر اساس خطوط جدید (newline) تفکیک می‌کند. چنانچه مایل به تفکیک بر پایه موارد دیگری هستید، از دستورات توکار .BR "string split" , .B string split0 یا .B string collect استفاده کنید. اگر این موارد به عنوان آخرین دستور در یک جایگزینی دستور استفاده شوند، تفکیک‌های ایجادشده توسط آن‌ها به مرحله بعد منتقل می‌گردد. بنابراین: .INDENT 0.0 .INDENT 3.5 .sp .EX for i in (find . \-print0 | string split0) .EE .UNINDENT .UNINDENT .sp تمام نام‌های ممکن فایل‌ها را به درستی پردازش خواهد کرد. .SH "متغیرها (VARIABLES)" پوسته .B fish تعریف و حذف متغیرها را به جای عبارت \fBVAR=VAL\fP و مجموعه‌ای از دستورات توکار مجزا نظیر \fBdeclare\fP، \fBunset\fP و \fBexport\fP، با استفاده از دستور توکار .B set انجام می‌دهد. دستور .B set گزینه‌هایی را برای تعیین محدوده دید (scope) و وضعیت صدور به محیط (export) یک متغیر می‌پذیرد: .INDENT 0.0 .INDENT 3.5 .sp .EX # Define $PAGER *g*lobal and e*x*ported, # so this is like \(ga\(gaexport PAGER=less\(ga\(ga set \-gx PAGER less # Define $alocalvariable only locally, # like \(ga\(galocal alocalvariable=foo\(ga\(ga set \-l alocalvariable foo .EE .UNINDENT .UNINDENT .sp یا برای پاک کردن متغیرها: .INDENT 0.0 .INDENT 3.5 .sp .EX set \-e PAGER .EE .UNINDENT .UNINDENT .sp عبارات \fBVAR=VAL\fP به عنوان بازنویسی‌های متغیرهای محیطی در دسترس هستند: .INDENT 0.0 .INDENT 3.5 .sp .EX PAGER=cat git log .EE .UNINDENT .UNINDENT .sp پوسته .B fish تفکیک کلمات (word splitting) را انجام نمی‌دهد. هنگامی که متغیری روی مقداری تنظیم شد، آن مقدار به همان شکل باقی می‌ماند؛ بنابراین قرار دادن بسط متغیر درون نقل‌قول دوتایی (گیومه مضاعف) الزامی که در bash دارد را در اینجا ندارد. [1] .sp برای نمونه، رفتار در bash به این صورت است: .INDENT 0.0 .INDENT 3.5 .sp .EX > foo=\(dqbar baz\(dq > printf \(aq\(dq%s\(dq\en\(aq $foo # will print two lines, because we didn\(aqt double\-quote # this is word splitting \(dqbar\(dq \(dqbaz\(dq .EE .UNINDENT .UNINDENT .sp و در fish به این صورت: .INDENT 0.0 .INDENT 3.5 .sp .EX > set foo \(dqbar baz\(dq > printf \(aq\(dq%s\(dq\en\(aq $foo # foo was set as one element, # so it will be passed as one element, so this is one line \(dqbar baz\(dq .EE .UNINDENT .UNINDENT .sp همه متغیرها «آرایه» هستند (در فیش از واژه «لیست» استفاده می‌شود)، و بسط یک متغیر به تمام عناصر آن بسط می‌یابد، به طوری که هر عنصر به عنوان یک آرگومان جداگانه عمل می‌کند (مشابه \fB\(dq${var[@]}\(dq\fP در bash): .INDENT 0.0 .INDENT 3.5 .sp .EX > set var \(dqfoo bar\(dq banana > printf %s\en $var foo bar banana .EE .UNINDENT .UNINDENT .sp می‌توان عناصر خاصی از یک لیست را انتخاب کرد: .INDENT 0.0 .INDENT 3.5 .sp .EX echo $list[5..7] .EE .UNINDENT .UNINDENT .sp آرگومان‌های ارسالی به .B set عادی هستند، بنابراین می‌توانید یک متغیر را با خروجی یک دستور مقداردهی کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX # Set lines to all the lines in file, one element per line set lines (cat file) .EE .UNINDENT .UNINDENT .sp یا ترکیبی از مقادیر ثابت و خروجی دستورات: .INDENT 0.0 .INDENT 3.5 .sp .EX > set numbers 1 2 3 (seq 5 8) 9 > printf \(aq%s\en\(aq $numbers 1 2 3 5 6 7 8 9 .EE .UNINDENT .UNINDENT .sp قرار دادن علامت \fB=\fP با دستور .B set غیرضروری و نادرست است \- دستور \fBset foo = bar\fP متغیر "foo" را روی دو مقدار تنظیم می‌کند: "=" و "bar". همچنین دستور \fBset foo=bar\fP خطایی چاپ خواهد کرد. .sp برای اطلاعات بیشتر، مستندات متغیرهای پوسته (Shell variables) را ببینید. .IP [1] 5 پوسته zsh نیز به‌طور پیش‌فرض تفکیک کلمات را انجام نمی‌دهد (گزینه SH_WORD_SPLIT این رفتار را کنترل می‌کند). .SH "مقادیر پیش‌فرض متغیرها (VARIABLE DEFAULTS)" پوسته .B fish از ساختار \fB${my_variable:\-fallback}\fP برای فراهم کردن مقادیر پیش‌فرض برای متغیرهای تعریف‌نشده پشتیبانی نمی‌کند. در عوض، می‌توانید با بررسی اینکه آیا متغیر تاکنون تنظیم شده است یا خیر، مقادیر پیش‌فرض را مشخص کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX # Ensure XDG_CONFIG_HOME is set or use a default value set \-q XDG_CONFIG_HOME || set XDG_CONFIG_HOME $HOME/.config # now use XDG_CONFIG_HOME as normal .EE .UNINDENT .UNINDENT .SH "کاراکترهای عام (WILDCARDS / GLOBS)" پوسته .B fish از نظر نحوی فقط از الگوهای عام \fB*\fP و \fB**\fP (و الگوی منسوخ‌شده \fB?\fP) پشتیبانی می‌کند. اگر یک الگوی عام تطابقی نیابد، دستور با شکست مواجه می‌شود (مشابه \fBfailglob\fP در bash)، مگر اینکه دستور یکی از موارد \fBfor\fP، \fBset\fP یا \fBcount\fP باشد، یا اینکه الگو با بازنویسی متغیر محیطی (\fBVAR=* command\fP) به کار رود که در این صورت به هیچ مقداری بسط نمی‌یابد (مانند گزینه \fBnullglob\fP در bash). .sp الگویابی روی متغیرهای بسط‌یافته صورت نمی‌گیرد، بنابراین: .INDENT 0.0 .INDENT 3.5 .sp .EX set foo \(dq*\(dq echo $foo .EE .UNINDENT .UNINDENT .sp هیچ فایلی را مطابقت نخواهد داد. .sp هیچ گزینه‌ای برای کنترل رفتار الگویابی وجود ندارد، بنابراین رفتار آن همواره یکسان است. .sp الگوی \fB**\fP فایل‌ها را در زیرپوشه‌ها نیز مطابقت می‌دهد. در سایر پوسته‌ها این قابلیت معمولاً نیازمند فعال‌سازی از طریق گزینه‌ای خاص مانند \fBsetopt globstar\fP در bash است. .sp برخلاف bash، فیش پیوندهای نمادین (symlinks) را نیز دنبال می‌کند و نتایج را با ترتیب طبیعی (natural sort) مرتب می‌سازد، به گونه‌ای که اعداد موجود به عنوان عدد با هم مقایسه می‌شوند. این به این معناست که برای نمونه، قطعات موسیقی را حتی اگر شماره‌هایی مثل \fB1\fP به جای \fB01\fP داشته باشند، به درستی مرتب می‌کند. .sp برای اطلاعات بیشتر، مستندات الگوهای عام (Wildcards) را ببینید. .SH "نقل‌قول (QUOTING)" پوسته .B fish دو سبک نقل‌قول دارد: \fB\(dq\(dq\fP (گیومه مضاعف) و \fB\(aq\(aq\fP (گیومه تکی). متغیرها درون گیومه مضاعف بسط می‌یابند، اما هیچ چیزی درون گیومه تکی بسط پیدا نمی‌کند. .sp ساختار \fB$\(aq\(aq\fP وجود ندارد؛ در عوض توالی‌هایی که باید تبدیل شوند، \fIهنگامی که درون گیومه نباشند\fP تبدیل می‌گردند: .INDENT 0.0 .INDENT 3.5 .sp .EX > echo a\enb a b .EE .UNINDENT .UNINDENT .sp برای اطلاعات بیشتر، مستندات نقل‌قول (Quotes) را ببینید. .SH "دستکاری رشته‌ها (STRING MANIPULATION)" پوسته .B fish فاقد ساختارهای \fB${foo%bar}\fP، \fB${foo#bar}\fP و \fB${foo/bar/baz}\fP است. در عوض، عملیات دستکاری رشته‌ها توسط دستور توکار .B string انجام می‌پذیرد. .sp برای نمونه، جهت جایگزینی "bar" با "baz": .INDENT 0.0 .INDENT 3.5 .sp .EX > string replace bar baz \(dqbar luhrmann\(dq baz luhrmann .EE .UNINDENT .UNINDENT .sp همچنین می‌تواند رشته‌ها را تفکیک کند: .INDENT 0.0 .INDENT 3.5 .sp .EX > string split \(dq,\(dq \(dqfoo,bar\(dq foo bar .EE .UNINDENT .UNINDENT .sp تطبیق با عبارات باقاعده (Regex) به عنوان جایگزینی برای \fBgrep\fP: .INDENT 0.0 .INDENT 3.5 .sp .EX > echo bababa | string match \-r \(aqaba$\(aq aba .EE .UNINDENT .UNINDENT .sp پر کردن رشته‌ها تا پهنای مشخص با کاراکترهای دلخواه (padding): .INDENT 0.0 .INDENT 3.5 .sp .EX > string pad \-c x \-w 20 \(dqfoo\(dq xxxxxxxxxxxxxxxxxfoo .EE .UNINDENT .UNINDENT .sp تبدیل حروف رشته به کوچک یا بزرگ: .INDENT 0.0 .INDENT 3.5 .sp .EX > string lower Foo foo > string upper Foo FOO .EE .UNINDENT .UNINDENT .sp تکرار رشته‌ها، پیرایش فاصله‌ها (trim)، اسکیپ کردن رشته‌ها، یا چاپ طول و عرض رشته (بر حسب سلول‌های ترمینال). .SH "متغیرهای ویژه (SPECIAL VARIABLES)" برخی از متغیرهای bash و نزدیک‌ترین معادل آن‌ها در fish: .INDENT 0.0 .IP \(bu 2 متغیرهای \fB$*\fP، \fB$@\fP، \fB$1\fP و موارد بعدی: \fB$argv\fP .IP \(bu 2 متغیر \fB$?\fP: معادل \fB$status\fP .IP \(bu 2 متغیر \fB$$\fP: معادل \fB$fish_pid\fP .IP \(bu 2 متغیر \fB$#\fP: متغیری وجود ندارد، به جای آن از \fBcount $argv\fP استفاده کنید .IP \(bu 2 متغیر \fB$!\fP: معادل \fB$last_pid\fP .IP \(bu 2 متغیر \fB$0\fP: معادل \fBstatus filename\fP .IP \(bu 2 متغیر \fB$\-\fP: عمدتاً معادل دستورات \fBstatus is\-interactive\fP و \fBstatus is\-login\fP .UNINDENT .SH "جایگزینی فرآیند (PROCESS SUBSTITUTION)" پوسته .B fish به جای ساختار \fB<(command)\fP از \fB(command | psub)\fP استفاده می‌کند. هیچ معادلی برای \fB>(command)\fP وجود ندارد. .sp توجه داشته باشید که هر دوی این‌ها قابلیت‌های مختص بش (bashisms) هستند، و بیشتر اهداف را می‌توان به راحتی بدون آن‌ها محقق ساخت. برای مثال، به جای: .INDENT 0.0 .INDENT 3.5 .sp .EX source (command | psub) .EE .UNINDENT .UNINDENT .sp استفاده کنید از: .INDENT 0.0 .INDENT 3.5 .sp .EX command | source .EE .UNINDENT .UNINDENT .sp زیرا دستور توکار .B source در فیش می‌تواند مستقیماً از ورودی استاندارد (stdin) بخواند. .SH "اسناد درجا (HEREDOCS)" پوسته .B fish از ساختار اسناد درجا یا همان «heredoc» به شکل \fB< math 5 / 2 2.5 .EE .UNINDENT .UNINDENT .sp و توابعی کاربردی، از جمله برای مثلثات، در اختیار دارد: .INDENT 0.0 .INDENT 3.5 .sp .EX > math cos 2 x pi 1 .EE .UNINDENT .UNINDENT .sp شما می‌توانید مانند بالا آرگومان‌ها را به صورت جداگانه یا درون گیومه به دستور \fBmath\fP بفرستید. از آنجا که فیش از پرانتزهای \fB()\fP برای جایگزینی دستورات بهره می‌برد، اگر بخواهید از آن‌ها در عبارت خود استفاده کنید نقل‌قول کردن (قرار دادن درون گیومه) الزامی است: .INDENT 0.0 .INDENT 3.5 .sp .EX > math \(aq(5 + 2) * 4\(aq .EE .UNINDENT .UNINDENT .sp هر دو نماد \fB*\fP و \fBx\fP روش‌های معتبری برای نگارش عملگر ضرب هستند، اما \fB*\fP به دلیل اینکه شبیه به کاراکتر عام (glob) به نظر می‌رسد، نیازمند قرارگیری درون گیومه است. .SH "اعلان‌های خط فرمان (PROMPTS)" پوسته .B fish از متغیرهای \fB$PS1\fP، \fB$PS2\fP و نظایر آن‌ها استفاده نمی‌کند. در عوض اعلان خط فرمان خروجی تابع \fBfish_prompt\fP است، به‌علاوه خروجی تابع \fBfish_mode_prompt\fP در صورتی که حالت vi فعال باشد. خروجی تابع \fBfish_right_prompt\fP نیز برای اعلان سمت راست صفحه نمایش به کار می‌رود. .sp به عنوان نمونه، این یک اعلان خط فرمان نسبتاً ساده در bash است: .INDENT 0.0 .INDENT 3.5 .sp .EX # <$HOSTNAME> <$PWD in blue> PS1=\(aq\eh\e[\ee[1;34m\e]\ew\e[\ee[m\e] \e[\ee[1;32m\e]\e$\e[\ee[m\e] \(aq .EE .UNINDENT .UNINDENT .sp و این معادل تقریبی آن در fish است: .INDENT 0.0 .INDENT 3.5 .sp .EX function fish_prompt set \-l prompt_symbol \(aq$\(aq fish_is_root_user; and set prompt_symbol \(aq#\(aq echo \-s (prompt_hostname) \e (set_color blue) (prompt_pwd) \e (set_color yellow) $prompt_symbol (set_color \-\-reset) end .EE .UNINDENT .UNINDENT .sp این چند تفاوت را نشان می‌دهد: .INDENT 0.0 .IP \(bu 2 پوسته fish دستور \fBset_color\fP را برای رنگی کردن متن فراهم می‌کند. این دستور می‌تواند ۱۶ رنگ نام‌گذاری‌شده و همچنین توالی‌های RGB را به کار گیرد (بنابراین می‌توانید از \fBset_color 5555FF\fP نیز استفاده کنید). .IP \(bu 2 به جای معرفی کدهای اسکیپ اختصاصی مانند \fB\eh\fP برای نام میزبان، اعلان یک تابع است. برای دستیابی به اثری مانند \fB\eh\fP، فیش توابع کمکی نظیر \fBprompt_hostname\fP را ارائه می‌دهد که نسخه کوتاه‌شده‌ای از نام میزبان را چاپ می‌کند. .IP \(bu 2 پوسته fish توابع کمکی دیگری را برای افزودن المان‌ها به خط اعلان فراهم ساخته است، مانند \fBfish_vcs_prompt\fP برای افزودن وضعیت سیستم‌های کنترل نسخه مرسوم (git، mercurial، svn) و \fBprompt_pwd\fP برای نمایش نسخه خلاصه‌شده \fB$PWD\fP (دایرکتوری خانگی کاربر به \fB~\fP تبدیل شده و اجزای مسیر کوتاه می‌شوند). .UNINDENT .sp اعلان پیش‌فرض بسیار کامل است و کدهای آن با اجرای \fBtype fish_prompt\fP قابل مشاهده است. .sp پوسته fish متغیر \fB$PS2\fP را برای خطوط ادامه‌دار ندارد، در عوض خطوط را تورفته رها می‌کند تا نشان دهد خط فرمان هنوز پایان نیافته است. .SH "بلوک‌ها و حلقه‌ها (BLOCKS AND LOOPS)" ساختارهای مسدودکننده و بلوک‌ها در .B fish کمی متفاوت به نظر می‌رسند. همه آن‌ها با یک کلمه آغاز می‌شوند، با کلمه \fBend\fP پایان می‌پذیرند و کلمه آغازگر دومی ندارند: .INDENT 0.0 .INDENT 3.5 .sp .EX for i in 1 2 3; do echo $i done # becomes for i in 1 2 3 echo $i end while true; do echo Weeee done # becomes while true echo Weeeeeee end { echo Hello } # becomes begin echo Hello end if true; then echo Yes I am true else echo \(dqHow is true not true?\(dq fi # becomes if true echo Yes I am true else echo \(dqHow is true not true?\(dq end foo() { echo foo } # becomes function foo echo foo end # (bash allows the word \(dqfunction\(dq, # but this is an extension) .EE .UNINDENT .UNINDENT .sp پوسته fish ساختار \fBuntil\fP ندارد. به جای آن از \fBwhile not\fP یا \fBwhile !\fP استفاده نمایید. .SH "زیرپوسته‌ها (SUBSHELLS)" پوسته Bash قابلیتی به نام «زیرپوسته» (subshell) دارد که طی آن، برای کارهایی مشخص یک فرآیند پوسته دیگر را راه‌اندازی می‌کند. آن پوسته مستقل خواهد بود و برای مثال هر تغییری که در متغیرها بدهد، در پوسته اصلی دیده نخواهد شد. .sp این موضوع شامل مواردی مانند این‌ها است: .INDENT 0.0 .INDENT 3.5 .sp .EX # A list of commands in \(ga()\(ga parentheses (foo; bar) | baz # Both sides of a pipe foo | while read \-r bar; do # This will not be visible outside of the loop. VAR=VAL # This background process will not be, either baz & done .EE .UNINDENT .UNINDENT .sp پوسته fish در حال حاضر دارای زیرپوسته نیست. شما باید راهکار دیگری پیدا کنید. ایزوله‌سازی معمولاً با تعیین محدوده متغیرها (با دستور \fBset \-l\fP) امکان‌پذیر است، اما اگر واقعاً نیاز به اجرای کد در محیط پوسته‌ای نو دارید، می‌توانید برای انجام صریح آن از دستور \fBfish \-c \(aqyour code here\(aq\fP استفاده فرمایید. .sp زیرپوسته‌های دارای پرانتز \fB()\fP معمولاً با گروه‌بندی براکتی \fB{}\fP که از زیرپوسته استفاده \fIنمی‌کند\fP اشتباه گرفته می‌شوند. وقتی که فقط نیاز به گروه‌بندی دارید، می‌توانید در fish از \fBbegin; end\fP بهره ببرید: .INDENT 0.0 .INDENT 3.5 .sp .EX (foo; bar) | baz # when it should really have been: { foo; bar; } | baz # becomes begin; foo; bar; end | baz .EE .UNINDENT .UNINDENT .sp پایپ‌ها در همان فرآیند اجرا می‌شوند، بنابراین حلقه‌های \fBwhile read\fP می‌توانند متغیرهایی را در خارج تنظیم کنند: .INDENT 0.0 .INDENT 3.5 .sp .EX foo | while read bar set \-g VAR VAL baz & end echo $VAR # will print VAL jobs # will show \(dqbaz\(dq .EE .UNINDENT .UNINDENT .sp زیرپوسته‌ها همچنین مکرراً با جایگزینی دستورات اشتباه گرفته می‌شوند؛ ساختاری که در bash به صورت \fB\(gacommand\(ga\fP یا \fB$(command)\fP نگاشته شده و در fish به شکل \fB$(command)\fP یا \fB(command)\fP نوشته می‌شود. پوسته Bash برای پیاده‌سازی آن‌ها نیز از زیرپوسته‌ها \fIاستفاده می‌کند\fP. .SH "دستورات توکار و سایر دستورات (BUILTINS AND OTHER COMMANDS)" تاکنون آشکار گردیده که پوسته fish بیش از آنکه بر روی سینتکس تمرکز کند، تمرکز بسیار بیشتری را بر روی دستورات توکار و دستورات خارجی معطوف کرده است. در اینجا برخی از دستورات توکار سودمند و معادل تقریبی آن‌ها در bash ذکر شده است: .INDENT 0.0 .IP \(bu 2 دستور \fBstring\fP \- جایگزین اغلب تبدیلات رشته‌ای (\fB${i%foo}\fP و نظایر آن) می‌شود و همچنین می‌تواند به جای \fBgrep\fP، \fBsed\fP و مانند این‌ها استفاده گردد. .IP \(bu 2 دستور \fBmath\fP \- جایگزین محاسبات حسابی \fB$((i + 1))\fP می‌شود و علاوه بر این می‌تواند با اعداد اعشاری و برخی توابع ساده (سینوس و همتایانش) کار کند. .IP \(bu 2 دستور \fBargparse\fP \- توانایی پردازش و مدیریت گزینه‌های یک اسکریپت را دارد؛ کاری که bash برای آن احتمالاً از \fBgetopt\fP بهره می‌برد (و zsh دستور \fBzparseopts\fP را ارائه می‌دهد). .IP \(bu 2 دستور \fBcount\fP \- می‌تواند برای شمارش اقلام استفاده شود و بنابراین جایگزین \fB$#\fP شده و می‌تواند به جای \fBwc\fP نیز استفاده شود. .IP \(bu 2 دستور \fBstatus\fP \- اطلاعاتی درباره وضعیت پوسته، برای مثال تعاملی بودن آن یا شماره خط فعلی، ارائه می‌دهد. این دستور جایگزین متغیرهای \fB$\-\fP، \fB$BASH_LINENO\fP و سایر متغیرها است. .IP \(bu 2 دستور \fBseq(1)\fP \- می‌تواند به عنوان جایگزینی برای بسط بازه‌ای \fB{1..10}\fP استفاده شود. چنانچه سیستم‌عامل شما حاوی دستور \fBseq\fP نباشد، فیش یک تابع جایگزین درون خود گنجانده است. .UNINDENT .SH "سایر امکانات (OTHER FACILITIES)" پوسته Bash دارای گزینه‌های \fBset \-x\fP یا \fBset \-o xtrace\fP برای چاپ همه دستوراتی است که اجرا می‌شوند. در fish، این ویژگی با مقداردهی متغیر محیطی \fBfish_trace\fP فعال می‌گردد. .sp یا اگر هدف شما پروفایل (\fIprofile\fP) کردن این است که هر خط از اسکریپت چه مدت زمان صرف می‌کند، می‌توانید از دستور \fBfish \-\-profile\fP استفاده کنید \- به صفحه راهنمای دستور .BR fish (1) مراجعه فرمایید. .SH "نویسندگان (AUTHORS)" توسعه‌دهندگان پوسته فیش (fish-shell developers) .SH "حق نشر (COPYRIGHT)" توسعه‌دهندگان پوسته فیش (fish-shell developers) .SH "همچنین ببینید (SEE ALSO)" .BR fish (1), .BR bash (1), .BR fish-doc (1) .PP پایگاه وب رسمی پوسته فیش: .\" End of generated man page.