शेल कमांड के सामने परसेंट साइन (%)


9

मैंने सिर्फ अपने शेल में कोड का एक गुच्छा चिपकाया, लेकिन %कमांड चलाने से पहले प्रमुख को हटाना भूल गया । ऐसा प्रतीत होता है कि उन्होंने कुछ नहीं किया। यह मेरे खोल ( zsh ) में कुछ भी क्यों नहीं करता है ?

> % echo foo

में bash , मैं निम्नलिखित मिल

> % echo foo
bash: fg: %: no such job

मैं बस यह सुनिश्चित करना चाहता हूं कि मेरे आदेश को चलाने का कोई साइड-इफेक्ट न हो।

जवाबों:


9

%एक 'जॉबिड' को संदर्भित करता है जो कि zsh के "जॉब कंट्रोल एंड प्रोसेस कंट्रोल" विशेषताओं के हिस्से के रूप में उपयोग किया जाता है। उपयोगकर्ता-गाइड से उद्धृत करने के लिए:

'fg' is the default operation on jobs referred to with the '%' notation,
so just typing '%1' with no command name would have worked, too.

उदाहरण:

$> man zshall &
[1]  + 31392 suspended (tty output)  man zshall
$> jobs
[1]  + suspended (tty output)  man zshall
$> %
<manpage-opens-for-zshall>

इसके बारे में और अधिक पढ़ें: http://zsh.sourceforge.net/Guide/zshguide03.html#l39

अपने वास्तविक प्रश्न का उत्तर देने के लिए: यदि आपका ज़िश वहां चेतावनी नहीं देता है ("fg: no current job" या like) तो वहाँ IS / WAS नौकरी करता है। उदाहरण:

$> sleep 60 &
$> % echo foo
[1]  + 411 running    sleep 60
fg: job not found: echo

%बस पृष्ठभूमि प्रक्रिया वापस मिल और यह चलाता है। 60 सेकंड के बाद इसे अगला 'जॉबिड' मिला, जो नहीं मिला।

इस प्रकार: आपके द्वारा अनुभव किया गया व्यवहार थोड़ा अजीब है। आपके पूरे zshrc के बिना यह बताना मुश्किल है कि वास्तव में क्या चल रहा है। ऐसा लगता है जैसे आप अपने zsh को बताने में कामयाब रहे हैं कि '%' चार टिप्पणी कर रहा है। मैं histcharsइसका मान 3 मान के लिए जाँचूंगा:

$> echo $histchars

शानदार, धन्यवाद। मैं आपके परीक्षणों को दोहराने में सक्षम था और साथ में चल रहे काम को आगे बढ़ा सकता था %। अच्छी पकड़ $histcharsभी है, लेकिन मेरा एक हैश साइन ( !^#) है। मैं अपने विशेष मामले के जवाब का अनुमान लगा रहा हूं, तो यह है कि कुछ पृष्ठभूमि वाली प्रक्रियाएं थीं जो अजीब तरीके से व्यवहार कर रही थीं। शेल पाठ के लिए फिर से धन्यवाद!
डेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.