मुझे अभी एक और रास्ता मिला है, जो कम से कम echoआईएनजी स्ट्रिंग्स (वाक्यों) के साथ काम करेगा जिसे आप विस्मयादिबोधक बिंदु के साथ पंचर करना चाहते हैं। यह बैश हिस्टेक्पैंड के चारों ओर कम-से-कम एक अंत-रन करता है, और कोड के लिए केवल थोड़ा अधिक समय लेता है।
एक विस्मयादिबोधक बिंदु के लिए हेक्स, जैसा कि http://www.ascii-code.com/ पर सूचीबद्ध है
, 21 वर्ष का है, इसलिए यदि आप \x21अपनी स्ट्रिंग के अंत में रखते हैं echo -e $foo, तो $fooअपना स्वयं का विस्तारित प्रतिध्वनि बनाएं (यानी foo=$(echo -e "$foo")], जो आप जब आप echo $fooफिर से !अंत में स्ट्रिंग के साथ हो। और कोई स्विचिंग histexpand भी नहीं।
बाश 4+ में निश्चित रूप से काम करता है। पहले के संस्करण, ymmv।
bzr commit -m "It works"!करता है, भी।