Intereting Posts
स्क्रॉलएव के अंदर रीसायकलवेव्यू- पूरे कंटेंट को कैसे स्क्रॉल करें? डिकोडिंग में आउटफाईमोरी एन्टर को पकड़ना बिटमैप कॉर्डोबा आयोनिक: एंड्रॉइड इमोजी नरम कीबोर्ड सक्षम करें एंड्रॉइड में XML का उपयोग कर पुस्तकालय में किसी अन्य पैकेज से स्ट्रिंग को कैसे संदर्भित करें? एंड्रॉइड, पथ के साथ बिटमैप चालें? मैं SyncAdapter के बिना Android पर एक खाता कैसे लागू कर सकता हूं एप स्थापित होने पर एंड्रॉइड प्लेस्टोर को पैरामीटर पास करने के लिए ऐप लिंक का उपयोग कैसे किया जाए एंड्रॉइड समायोजित दिवा बग बग? गैलेक्सी एस 5 लॉलीपॉप – एंड्रॉइड स्टूडियो डीबगर के तहत सभी ब्रेकपॉइंट्स निष्पादन रोकते हैं डेटाबेस में या .txt फ़ाइल में एंड्रॉइड में शायद ही कभी इस्तेमाल की जाने वाली लंबी स्ट्रिंग कहां संग्रहित करें? (अभिनय की दृष्टि से) VideoView में वापस बटन के साथ समस्या गतिविधि प्रवाह को नियंत्रित करने के लिए – वापस बटन बनाम होम बटन एंड्रॉइड मेमोरी लीक, कोई स्थिर वैरिएबल नहीं एंड्रॉइड स्टूडियो से परियोजना निकालें कैसे पूरी तरह से एक गतिविधि के जीयूआई से छुटकारा पाना (एक काली स्क्रीन से बचें)

एंड्रॉइड में खोल लिपि देता है [: नहीं मिला

मेरे लिनक्सीन पर काम करने वाली यह स्क्रिप्ट है I

#!/bin/sh c=1 if [ $c == 1 ] then echo c is 1 else echo c is 0 fi 

लेकिन जब मैं एंड्रॉइड में इसका उपयोग निम्नानुसार करता हूं:

 #!/system/bin/sh c=1 if [ $c == 1 ] then echo c is 1 else echo c is 0 fi 

यह एक त्रुटि देता है:

 [: not found 

संपादित करें

$c के मूल्य की जांच करने के लिए कोई अन्य तर्क है, चाहे वह 1 या 0 है?

एंड्रॉइड शेल [] के साथ समस्या है अगर सी के मूल्य की जांच करने के लिए कोई अन्य तरीका है?

Solutions Collecting From Web of "एंड्रॉइड में खोल लिपि देता है [: नहीं मिला"

एंड्रॉइड शेल वास्तव में बिजीबॉक्स के लिए एक कड़ी है, और इसे के रूप में लागू किया जाता है

 busybox sh 

आपको सेटअप की जरूरत है [एपलेट मैन्युअल रूप से

 busybox ln -s /your_original_sh_path/busybox [ 

अगर आप नहीं जानते कि कहां बिज़बॉक्स है, तो उस सूची को / system / bin / sh की कोशिश करें जो आप दे देते हैं

 ls /system/bin/sh busybox which busybox 

आमतौर पर [ test लिए एक उपनाम है,

लिनक्स मशीन परीक्षण में है

 /usr/bin/test 

तथा

 if [ $c == 1 ] 

के रूप में मूल्यांकन किया जाता है

 if test "$c" = 1 

लेकिन यहां एंड्रॉइड में कोई test नहीं test

इसलिए अगर [] के साथ किसी भी मामले में काम नहीं करेगा …

मैं एंड्रॉइड के लिए परीक्षण संकलन कर दूंगा …. !!!

एंड्रॉइड एक पूर्ण यूनिक्स वातावरण प्रदान नहीं करता है, यह एक यूनिक्स ऑपरेटिंग सिस्टम नहीं है। इसमें कुछ समानताएं हैं, जैसे विंडोज को यूनिक्स के समान कुछ समानताएं भी हैं। कुछ एंड्रॉइड डिवाइस और रोम एक अन्य यूनिक्स-जैसा वातावरण प्रदान करने का प्रयास करते हैं, लेकिन आप अधिकतर मानक शैल स्क्रिप्टिंग टूल पर भरोसा नहीं कर सकते हैं यदि आप क्रॉस-डिवाइस संगतता के बारे में सोच रहे हैं।

उदाहरण के लिए, यदि आप अपने जीएनयू / लिनक्स सिस्टम को देखते हैं, तो आप उस test को देख सकते हैं और [ वास्तव में प्रोग्राम हैं इसे आज़माएं: ls -l /usr/bin/[ । अधिकांश एंड्रॉइड इंस्टॉल में test या [ शामिल नहीं हैं इसका मतलब है कि अगर आप एंड्रॉइड के कम से कम शेल पर्यावरण के साथ वास्तविक प्रोग्रामिंग करने की कोशिश करना चाहते हैं, तो आपको बहुत सारी अजीब चालें का उपयोग करना होगा। आप पूर्ण यूनिक्स शैल वातावरण पाने के लिए बिजीबॉक्स स्थापित कर सकते हैं, या आप अपने बॉक्स में बिजीबॉक्स भी बना सकते हैं। मैं ऐसा करता हूं जब मुझे ऐप में शेल लिपियों को शामिल करने की आवश्यकता होती है (उदाहरण के लिए, लिल डेबी और कॉमॉनेशन मेशथिल्डर )

यहां एंड्रॉइड /system/bin/sh पर्यावरण में एक killall लिखने का एक उदाहरण है: http://en.androidwiki.com/wiki/Android_Shell_tips_and_tricks आप कुछ तर्क बनाने के लिए विभिन्न पैरामीटर विस्तारों का भी उपयोग कर सकते हैं, आप इसका उदाहरण देख सकते हैं बर्नाल्ड वाईफ़ाई टिथर स्क्रिप्ट में

बाश का उपयोग करें:

#!/system/bin/bash

या

#!/system/xbin/bash

आप यह देख सकते हैं कि आपकी sh बाइनरी आपके लिनक्स मशीन पर कहां है:

 ls -l /bin/sh 

संपादित करें

बीटीडब्ल्यू, उपयोग करें:

 c=1 if [ $c -eq 1 ] then echo c is 1 else echo c is 0 fi 

आपको गलत अंकगणित ऑपरेटर का उपयोग करने के बारे में सोचें और गायब ";" की एक वाक्यविन्यास त्रुटि है: कोशिश करें

 [ $c -eq 1 ]; 

आपके फाइल के शीर्ष पर बाश (श) के लिए भी आपका स्थान गलत हो सकता है:

 #!/system/bin/sh 

कैसे जाँचने के बारे में कि .sh फ़ाइल लाइन फ़ीड से पहले कैरिज रिटर्न नहीं है।

विंडोज \ r \ n -> सीआर एलएफ

यूनिक्स \ n -> एलएफ

समानता परीक्षा के लिए उपयोग / सिस्टम / बिन / सीएमपी यदि आपको संख्यात्मक रूप से परीक्षण की आवश्यकता होती है, तो $ c ($ c == 1) $ के साथ विकल्प प्रतिस्थापित करें

 #!/system/bin/sh echo $c >/tmp/a echo 1 >/tmp/b if cmp /tmp/a /tmp/b echo c is 1 else echo c is 0 fi 

मैं इस मुद्दे पर भी चला और एक समाधान (एक अन्य साइट पर) पाया

 if [[ $b -gt 0]] then echo 'Hooray it works' else echo 'still works' fi