विचार करें:
gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version
पहले उदाहरण में, सब कुछ के बाद -xकमांड को निष्पादित करने के लिए उपयोग किया जाता है। इसलिए GNOME टर्मिनल sleep 10m --versionकमांड के रूप में चलेगा । --versionइस मामले में GNOME टर्मिनल द्वारा चलाए जाने वाले कमांड का हिस्सा बन जाता है।
दूसरे में, केवल एकल स्ट्रिंग तर्क को -eकमांड के रूप में उपयोग किया जाता है, और कुछ नहीं। तो --versionयहाँ वास्तव में GNOME टर्मिनल का विकल्प है।
यदि आप आदेशों की एक श्रृंखला चलाना चाहते हैं, तो सबसे अधिक उपयोगी हो सकता है:
gnome-terminal -x bash -c 'command 1; command 2; ...'
ऐसा करना मुश्किल है -e, क्योंकि पूरे कमांड को एक ही स्ट्रिंग की आवश्यकता है, इसलिए आपको पूरी बात उद्धृत करनी होगी। बदले में इसका मतलब है कि आपको उद्धरण और चर विस्तार से अधिक सावधान रहने की आवश्यकता है और इस तरह:
gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"
यहां, $fooवर्तमान शेल द्वारा विस्तारित किया जाएगा।
gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"'
'कमांड स्ट्रिंग के अंदर का उपयोग करना कष्टप्रद उद्धरण हैंडलिंग शामिल है।