कुटिया #!/bin/sh
मतलब है कि आप के लिए या तो के रूप में द्वारा परिभाषित कोड लिख रहे हैं ऐतिहासिक बॉर्न शैल (अभी भी सोलारिस की तरह कुछ सिस्टम मुझे लगता है कि पर पाया), या अधिक होने की संभावना, मानक खोल भाषा POSIX। इसका मतलब है कि read -p
और echo -n
दोनों अविश्वसनीय हैं।
मानक/पोर्टेबल समाधान है:
printf 'Enter [y/n] : '
read -r opt
(-r
\
की विशेष उपचार रोकता है, के बाद से read
सामान्य रूप से स्वीकार करता है कि एक लाइन निरंतरता जब यह एक पंक्ति के अंत में के रूप में।)
यदि आप जानते हैं कि आपकी स्क्रिप्ट बैश वाले सिस्टम पर चल जाएगी, तो आप शेबैंग को #!/bin/bash
(या #!/usr/bin/env bash
) में बदल सकते हैं और सभी फैंसी बैश सुविधाओं का उपयोग कर सकते हैं। (कई प्रणालियों /bin/sh
bash
सांकेतिक रूप से लिंक है तो यह किसी भी तरह से काम करता है, लेकिन यह है कि पर निर्भर बुरा व्यवहार है, और जब नाम sh
के तहत निष्पादित bash
वास्तव में अपनी ही सुविधाओं में से कुछ अक्षम करता है।)
@Aaron स्वरूपण के लिए धन्यवाद पद। यह मेरी पहली पोस्ट थी। मैं सुनिश्चित करता हूं कि मेरी अन्य पोस्ट अच्छी तरह से स्वरूपित हों। – user1263746
आपका स्वागत है :-) –