Π‘Π»Π΅Π΄ ΠΏΠΎΡΡΠΈ ΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ GNU Bash 5.3 Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½ ΡΠ΅Π»ΠΈΠ· Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° readline 8.3, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² bash Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄.
ΠΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠΈ Π·Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Β«${ command; }Β» ΠΈ Β«${|command;}Β», ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΡΠΈΡ Π²Π°ΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π±Π΅Π· ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ Π΄ΡΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ ΠΈ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½Π΅Π½Π°Π·ΠΎΠ²Π°Π½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ΡΠ΅ Π΄Π°Π²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΎΡ ΠΏΠΎΠ΄ΠΌΡΠ½Π°ΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° REPLY.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° GLOBSORT, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ° Π½Π°ΡΠΈΠ½ΡΡ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡ ΠΏΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅ (GLOBSORT=name), ΡΠ°Π·ΠΌΠ΅Ρ (GLOBSORT=size) ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° (GLOBSORT=mtime), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ (ΠΎΡ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΊΡΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅) ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ (ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΡΠΌ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ) ΡΠ΅Π΄ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Β«GLOBSORT=-sizeΒ» ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ Π½Π°ΠΉ-Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅).
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«compgenΒ» Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΠΎΠΏΡΠΈΡ Β«-V varnameΒ» Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ.
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«readΒ» Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΠΎΠΏΡΠΈΡ Β«-EΒ», ΠΊΠΎΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° readline Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ bash.
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«sourceΒ» Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΠΎΠΏΡΠΈΡ Β«-p PATHΒ», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠΏΠΈΡΡΠΊΡΡ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΡΠΈΡΠ° (ΡΠΊΠ°Π·Π°Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° $PATH).
- ΠΠ·Ρ ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡ C23. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Β«K&R CΒ» (ΡΡΠΈΠ», ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° Β«The C Programming LanguageΒ» Π½Π° ΠΠ΅ΡΠ½ΠΈΠ³Π°Π½ ΠΈ Π ΠΈΡΡΠΈ).
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«umaskΒ» ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠ»Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ POSIX.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«kvΒ», ΠΊΠΎΡΡΠΎ ΡΠΎΡΠΌΠΈΡΠ° Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠ°ΡΠΈΠ² Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ Β«ΠΊΠ»ΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΒ».
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«strptimeΒ», ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄Π°ΡΠ° ΠΈ ΡΠ°Ρ Π² Π΅ΠΏΠΎΡ Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ (Π±ΡΠΎΠΉ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΎΡ 1 ΡΠ½ΡΠ°ΡΠΈ 1970 Π³ΠΎΠ΄ΠΈΠ½Π°).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«fltexprΒ», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° let.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° BASH_MONOSECONDS, ΠΊΠΎΡΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΈ ΡΠ°ΡΠΎΠ²Π½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Ρ, Π΄ΠΎΡΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
- Π ΡΠ΅ΠΆΠΈΠΌ POSIX, ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«testΒ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ «», ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«bind -xΒ» Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π°ΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π΄Π²ΠΎΠΉΠ½ΠΈ ΠΊΠ°Π²ΠΈΡΠΊΠΈ.
- Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Readline Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«search-ignore-caseΒ» Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π±Π΅Π· Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ΅Π³ΠΈΡΡΡΡΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«export-completionsΒ» Π·Π° Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ Π·Π° Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π΄ΡΠΌΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ. ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«execute-named-commandΒ» Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΠΈΠΉΡΠΎ ΠΈΠΌΠ΅ Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ Π²Ρ ΠΎΠ΄.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
