विचार करें:
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}'\''"'
'
कमांड स्ट्रिंग के अंदर का उपयोग करना कष्टप्रद उद्धरण हैंडलिंग शामिल है।