_expand
टाइप करने पर आप पता लगा सकते हैं कि क्या करता है
$ type _expand
_expand is a function
_expand ()
{
if [[ "$cur" == \~*/* ]]; then
eval cur=$cur;
else
if [[ "$cur" == \~* ]]; then
cur=${cur#\~};
COMPREPLY=($( compgen -P '~' -u "$cur" ));
[ ${#COMPREPLY[@]} -eq 1 ] && eval COMPREPLY[0]=${COMPREPLY[0]};
return ${#COMPREPLY[@]};
fi;
fi
}
यह बैश समापन तंत्र में एक कार्य है। यह पैथनाम में टिल्ड ( ~
) का विस्तार करता है । में /etc/bash_completion
समारोह के बारे में एक टिप्पणी है:
# Expand ~username type directory specifications. We want to expand
# ~foo/... to /home/foo/... to avoid problems when $cur starting with
# a tilde is fed to commands and ending up quoted instead of expanded.
इसे टर्मिनल में आज़माएं, टाइप करें:
~<tab><tab>
उदाहरण के लिए, यह उपयोगकर्ता नाम में विस्तारित होगा
~usera ~userb ~userc
type
। यह मेरे लिए स्पष्ट नहीं था कि मैं इन कार्यों को क्यों नहीं कह सकता_function_name [argument]
, लेकिन अब मैं समझता हूं कि वे अपने उद्देश्य को स्वत: पूर्ण एक्सटेंशन के रूप में परोसते हैं, और यह तथ्य कि वे मेरे स्वत: पूर्ण में दिखाई देते हैं, केवल इसलिए कि वे घोषित किए जाते हैं (लेकिन वे अभिप्रेत नहीं हैं सीधे कहा जाए)।