অন্যরা যেমন উল্লেখ করেছে যে হ্যাশটি একটি সহযোগী অ্যারে (কী -> মান) যা বশ রক্ষণাবেক্ষণ করে যাতে কোনও কমান্ড কার্যকর করা হয়, বাশ প্রথমে এই হ্যাশটি অনুসন্ধান করে অনুসন্ধান করে যে ডিস্কে কমান্ডের অবস্থানটি ইতিমধ্যে পাওয়া গেছে $PATH
এবং সেখানে সংরক্ষণ করা হয়েছে stored দ্রুত অনুসন্ধানের জন্য।
আপনি হ্যাশটি কমান্ডগুলির একটি তালিকা দিয়ে প্রিললোড করতে পারেন যা আপনি বাশকে যখন সন্ধান করা হয় তখন এটি সন্ধান করতে চান। এই পরিবর্তনশীল বলা হয় BASH_CMDS
।
ম্যান পৃষ্ঠা থেকে উদ্ধৃতি
BASH_CMDS
An associative array variable whose members correspond to the
internal hash table of commands as maintained by the hash builtin.
Elements added to this array appear in the hash table; unsetting
array elements cause commands to be removed from the hash table.
অতিরিক্তভাবে আপনি যদি ব্যাশ ম্যান পৃষ্ঠাটি দেখে থাকেন তবে শিরোনামে একটি বিভাগ রয়েছে, কম্যান্ড এক্সিকিউশন যা প্রম্পটে টাইপ করার সময় কোনও কমান্ড টাইপ করার সময় বাশ ব্যবহার করার মতো রাষ্ট্রীয় মেশিনের বিবরণ দেয়।
উদ্ধৃতাংশ
If the name is neither a shell function nor a builtin, and contains no
slashes, bash searches each element of the PATH for a directory con‐
taining an executable file by that name. Bash uses a hash table to
remember the full pathnames of executable files (see hash under SHELL
BUILTIN COMMANDS below). A full search of the directories in PATH is
performed only if the command is not found in the hash table. If the
search is unsuccessful, the shell searches for a defined shell function
named command_not_found_handle. If that function exists, it is
invoked with the original command and the original command's arguments
as its arguments, and the function's exit status becomes the exit
status of the shell. If that function is not defined, the shell prints
an error message and returns an exit status of 127.
আপনার হ্যাশটিতে বর্তমানে কী রয়েছে তা -l
স্যুইচটি ব্যবহার করে আপনি জানতে পারবেন ।
উদাহরণ
$ hash -l
builtin hash -p /usr/bin/rm rm
builtin hash -p /usr/bin/sudo sudo
builtin hash -p /usr/bin/man man
builtin hash -p /usr/bin/ls ls