शेल स्क्रिप्ट से प्रोग्राम चलाएं लेकिन केवल एक प्रक्रिया के रूप में व्यवहार करें?


12

क्या कोई तरीका है जो मैं किसी शेल स्क्रिप्ट से किसी एप्लिकेशन को निष्पादित कर सकता हूं लेकिन दूसरी प्रक्रिया नहीं बना सकता। मैं चाहता हूं कि यह केवल एक प्रक्रिया की तरह दिखे । इससे कोई फर्क नहीं पड़ता कि क्या मेरी शेल स्क्रिप्ट को एक नई प्रक्रिया से बदल दिया गया है या क्या यह एक आवेदन के समाप्त होने के बाद जारी रहेगा।
इसे मेरे पिछले प्रश्न को भी हल करना चाहिए: /ubuntu/247632/is-there-a-way-to-associate-additional-application-launcher-with-an-app
आपकी मदद के लिए बहुत-बहुत धन्यवाद ।

जवाबों:


7

आप execकमांड का उपयोग कर सकते हैं :

$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
    Replace the shell with the given command.

    Execute COMMAND, replacing this shell with the specified program.
    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
    any redirections take effect in the current shell.

    Options:
      -a name   pass NAME as the zeroth argument to COMMAND
      -c        execute COMMAND with an empty environment
      -l        place a dash in the zeroth argument to COMMAND

    If the command cannot be executed, a non-interactive shell exits, unless
    the shell option `execfail' is set.

    Exit Status:
    Returns success unless COMMAND is not found or a redirection error occurs.

उदाहरण:

user@host:~$ PS1="supershell$ "
supershell$ bash
user@host:~$ PS1="subshell$ "
subshell$ exec echo hello
hello
supershell$ 

जैसा कि आप देख सकते हैं, उपधारा द्वारा प्रतिस्थापित किया जाता है echo


आपके उत्तर के लिए धन्यवाद। मैं इसे उदाहरण के लिए चला सकता हूं: "एक्जीक्यूट-ए फायरफॉक्स जीएडिट और" और इसलिए जीडिट फ़ायरफ़ॉक्स के रूप में एक लांचर में दिखाई देता है। लेकिन यह अधिकांश ऐप के लिए काम नहीं करता है।
zubozrout

समस्या शायद इस तथ्य में है कि यद्यपि मैंने एक नई प्रक्रिया बनाई है, यह दोनों नामों, मूल एक और एक नव परिभाषित एक का उपयोग करता है। पुनश्च उत्पादन: 1000 6151 0.0 0.0 13720 944 pts / 2 R + 10:49 0:00 grep --color = auto xfox | 10006153 0.0 0.0 13716 940 pts / 2 S + 10:49 0:00 grep
रंग

क्या मैं पूछ सकता हूं कि आप &अपने आदेश के अंत में उपयोग क्यों कर रहे हैं ? यह एक सब-कमांड में कमांड चलाएगा, जो वास्तव में आप नहीं चाहते हैं।
एंड्रिया कोरबेलिनी

हां, मैं इसे टर्मिनल में कोशिश कर रहा था, न कि शेल स्क्रिप्ट के लिए।
zubozrout 10

2
इसलिए, मैं आपके पिछले प्रश्न को पढ़ता हूं और ऐसा लगता है कि आप कुछ चीजों को गलत समझ रहे हैं। आप भ्रमित कर रहे हैं प्रक्रिया के साथ zeroth तर्क के साथ पीआईडी के साथ पानी का छींटा लांचर । और आप गलत सवाल भी पूछ रहे हैं। आप जो पूछना चाहते हैं, वह पहले है: डैश सहयोगी प्रक्रियाओं को कैसे लॉन्च करता है? एक बार जब आप उस प्रश्न का उत्तर ढूंढ लेते हैं, तो आपको अपने मूल प्रश्न का उत्तर भी मिल जाएगा।
एंड्रिया कोरबेलिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.