set -x
खोल में उपयोग करें ।
$ alias hello='echo hello world!'
$ hello
hello world!
$ set -x
$ hello
+ echo hello world!
hello world!
का उपयोग करते हुए set -x
चालू हो जाता है xtrace
खोल विकल्प ( set +x
यह बंद हो जाती है) और में काम करना चाहिए सब बॉर्न की तरह गोले, की तरह bash
, dash
ksh93
, pdksh
और zsh
। यह शेल को कमांड को प्रदर्शित करने का संकेत देता है जिसे उपनाम विस्तार और चर विस्तार आदि के बाद निष्पादित किया जाता है।
आउटपुट शेल के मानक त्रुटि स्ट्रीम पर होगा (साधारण प्रॉम्प्ट की तरह) तो यह मानक आउटपुट के पुनर्निर्देशन में हस्तक्षेप नहीं करेगा, और यह PS4
शेल वेरिएबल ( +␣
डिफ़ॉल्ट रूप से) के रूप में एक प्रॉम्प्ट से पहले होगा ।
कुछ कार्यों के साथ उदाहरण:
$ world () { echo "world"; }
$ hello () { echo "hello"; }
$ helloworld () { printf '%s %s!\n' "$(hello)" "$(world)"; }
$ helloworld
hello world!
$ set -x
$ helloworld
+ helloworld
++ hello
++ echo hello
++ world
++ echo world
+ printf '%s %s!\n' hello world
hello world!
मैं set -x
डिफ़ॉल्ट रूप से अपने सभी इंटरैक्टिव गोले में चल रहा हूं । यह देखना अच्छा है कि वास्तव में क्या निष्पादित हुआ ... लेकिन मैंने देखा है कि प्रोग्राम टैब पूरा होने आदि कुछ गोले में अवांछित ट्रेस आउटपुट हो सकते हैं।
$@
आपके उपनाम का हिस्सा है? याद रखें कि उपनाम वास्तव में तर्कों का समर्थन नहीं करते हैं, जो कि उपनाम को बुलाते हुए संदर्भ के स्थितीय मापदंडों (यदि कोई हो) का विस्तार करेगा। रनिंग का सामान्य तरीकाsomealias some args
सिर्फ उर्फ का विस्तार करके और इसका पालन करने के लिए तर्कों को छोड़ कर काम करता है। यदि आप वास्तव में तर्कों का उपयोग करने में सक्षम होना चाहते हैं, तो एक फ़ंक्शन का उपयोग करें, और"$@"