क्यों करता है '!!' शॉर्टकट पहले से चलाए गए कमांड को निष्पादित करने में विफल रहता है?


14

हाल ही में मैंने अपने टर्मिनल पर टाइप किया

username:~$ !!

और बैश से त्रुटि मिली :

bash: !!: command not found

उसी समय, यह सफल होता है जब सुपरयुसर के तहत किया जाता है।

मैंने अपने उपयोगकर्ता की PATH की सामग्री की जांच की और कुछ भी संदिग्ध नहीं पाया:

/home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

यहाँ का उत्पादन है:

username:~$ history | tail
1993  date
1994  cal
1995  vcal
1996  uptime
1997  uname
1998  uptime
1999  uname
2000  uptime
2001  uname
2002  history | tail

एक और:

username:~$ echo foo
foo
username:~$ !!
bash: !!: command not found

2
क्या हमेशा ऐसा होता है? अगर आप दौड़ेंगे echo fooऔर फिर क्या होगा !!? इसके अलावा, कृपया अपने प्रश्न को संपादित करें और history | tailया तो का आउटपुट जोड़ें । क्या आपके शेल सत्र का कोई इतिहास है?
टेराडॉन

1
आपकी इनपुट भाषा क्या है? क्या आप मानक अंग्रेजी या कुछ अन्य कीबोर्ड का उपयोग कर रहे हैं?
सर्गी कोलोडियाज़नी

5
क्या histexpandआपके शेल विकल्पों में सेट किया गया है? क्या के उत्पादन में है echo $-?
स्टीलड्राइवर

2
@ मुरु, ... पूर्व फ़्रीनोड के रूप में बोलते हुए # नियमित रूप से, मैं बहुत समय व्यतीत करने के लिए लोगों को इसे अक्षम करने की सलाह देता था, अन्य चैनल के बुजुर्गों से कोई पुशबैक प्राप्त किए बिना - !शाब्दिक रूप से सम्मानित नहीं होने वाले साहित्यकारों द्वारा आश्चर्यचकित होने वाले लोग। अतिरिक्त उद्धृत करना किसी ऐसे व्यक्ति को खोजने की तुलना में अधिक सामान्य घटना थी, जो इतिहास विस्तार की कार्यक्षमता को रीडलाइन के माध्यम से आसान-से-उपयोग रूप में उपलब्ध नहीं करना चाहता था।
चार्ल्स डफी

1
@muru, मैंने इसे अपने कॉन्फ़िगरेशन फ़ाइल के बीच में अक्षम कर दिया था जब मैं इंटरनेट पर पाई जाने वाली कई उदाहरण फ़ाइलों में से एक से .bashrc सामग्री की नकल कर रहा था।
बुलट एम।

जवाबों:


23

इतिहास विस्तार अक्षम किया जा सकता है:

$ echo foo
foo
$ !!
echo foo
foo
$ set +o histexpand
$ set -o | grep hist
histexpand      off
history         on
$ echo foo
foo
$ !!
bash: !!: command not found

कोशिश करो set -Hया set -o histexpand


@ शेर set -o, या विशेष चर$-
muru

ठीक है, मैं देख रहा हूँ, कि आप क्या कर रहे हैंset -o | grep hist
सर्जियो कोलोडियाज़नी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.