संपादित करें:
भीतर काम करने लगता है bash
। यह समस्या से संबंधित है प्रकट होता है zsh
। अगर इस मुद्दे को पोस्ट करने के लिए एक बेहतर साइट है तो मुझे बताएं।
मैं एक सरल स्क्रिप्ट लिख रहा हूं जो निर्देशिकाओं की एक श्रृंखला बनाता है। मैं चाहता हूं कि ऐसा करने से पहले उपयोगकर्ता पुष्टि कर दे। मैं एक आधार के रूप में निम्नलिखित का उपयोग कर रहा हूं, लेकिन इसे बश फ़ंक्शन के भीतर चलाने के लिए प्राप्त नहीं कर सकता। अगर मैं इसे किसी फ़ंक्शन के बाहर रखता हूं तो यह ठीक काम करता है। यहाँ एक अलग उदाहरण है:
read.sh
#!/bin/bash
test() {
read -p "Here be dragons. Continue?" -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "You asked for it..."
fi
}
इस एसओ पद से कोड ।
test
निम्न त्रुटि में फ़ाइल और / या परिणाम सोर्सिंग read:1: -p: no coprocess
:। उसी आउटपुट जब मैं इसे अपने में रखता हूं.bashrc
संपादित करें :
@hennes
- मैं चाहता हूं कि फ़ंक्शन एक कॉन्फ़िगर फ़ाइल में हो, इसलिए मैं इसे जो भी निर्देशिका (आदर्श रूप से मेरे .bashrc या .zshon) से कॉल कर सकता हूं।
- मैंने पहली टिप्पणी लाइन के प्रारूपण को सही किया है। अभी भी समस्या मौजूद है
zsh
- बैश संस्करण 3.2 है, लेकिन आपने मुझे यह पता लगाने में मदद की है कि समस्या zsh के साथ है और बैश नहीं है।
zsh
लेकिन यह नहीं सोचा था कि बैश स्क्रिप्ट के साथ संघर्ष होगा (मेरे पास कई अन्य समान स्क्रिप्ट हैं जो सभी सही चल रहे हैं)। मैंने इसे पुनः प्राप्त कर लिया है, और आपके प्रश्नों का उत्तर दिया है। मुझे सही दिशा बताने के लिए धन्यवाद!
./read.sh
। इसकी आवश्यकता नहीं है कि आप इसे किसी अन्य तरीके से चलाते हैं या यदि आप इसे स्टार्टअप स्क्रिप्ट में रखते हैं। और अगर आप इसे। Zsh/read.sh ’के साथ zsh में चलाना चाहते हैं तो # से शुरू होने वाली लाइनों को अनदेखा कर दें। वे भी भ्रमित करते हैं क्योंकि उनके द्वारा यह धारणा दी जाती है कि जब आप zsh का उपयोग करते हैं तो आप बैश का उपयोग करते हैं)।
#! /bin/bash
शबंग के पीछे एक स्पेस के साथ? मैंने सोचा कि उन लोगों को अनुमति नहीं दी गई थी? 3) '#! / Usr / bin / env bash' शायद बेहतर है। 4) कौन सा बैश संस्करण? (मैंने FreeBSD पर बैश 4.1.10 के साथ परीक्षण किया और कोई त्रुटि नहीं मिली)