यह another issue के समान है, लेकिन मुझे केवल चाहिए यदि मैं विशिष्ट लक्ष्य चला रहा हूं और एक अनिवार्य चर निर्दिष्ट नहीं किया गया है।यदि अनिर्धारित है तो लक्ष्य-विशिष्ट मेकफ़ाइल चर के लिए कैसे संकेत दें?
वर्तमान कोड:
install-crontab: PASSWORD ?= "$(shell read -p "Password: "; echo "$$REPLY")"
install-crontab: $(SCRIPT_PATH)
@echo "@midnight \"$(SCRIPT_PATH)\" [...] \"$(PASSWORD)\""
यह सिर्फ निम्नलिखित उत्पादन में परिणाम है और कोई शीघ्र:
Password: read: 1: arg count
@midnight [...] ""
यहां महत्वपूर्ण बात मैं केवल जब चल रहा है इस पूछने के लिए कि है लक्ष्य, और केवल यदि चर परिभाषित नहीं किया गया है। मैं configure
स्क्रिप्ट का उपयोग नहीं कर सकता, क्योंकि स्पष्ट रूप से मुझे कॉन्फ़िगर स्क्रिप्ट में पासवर्ड स्टोर नहीं करना चाहिए, और क्योंकि यह लक्ष्य मानक स्थापना प्रक्रिया का हिस्सा नहीं है।
जब तक मेरी आंखें मुझे धोखा देती हैं, कि जब आप केवल एंटर दबाते हैं तो लूप डिफ़ॉल्ट 'एन' का उपयोग करने के बजाए दोहराएगा। – l0b0
आपको [सिंगल बराबर चिह्न '['] (http://mywiki.wooledge.org/Bashism#Conditionals) – l0b0
का उपयोग करना चाहिए, आप' if' कथन को भी सरल बना सकते हैं: 'अगर [$$ CONTINUE! =" Y "] && [$$ जारी रखें! =" वाई "]; then'। या यहां तक कि '[$$ CONTINUE =" y "] || [$$ CONTINUE = "वाई"] || ("बाहर निकलना" गूंजें; बाहर निकलें 1;) ' – l0b0