2012-01-17 11 views
10

ठीक है, मैं वही कर रहा हूं जो मैं करने की कोशिश कर रहा हूं। मैं बैश में एक त्वरित बिल्ड स्क्रिप्ट लिखने का प्रयास कर रहा हूं जो रिमोट सर्वर पर गिटहब से एक निजी भंडार की जांच करेगा। इसे "हाथ से दूर" करने के लिए, मैं दूरस्थ सर्वर पर एक स्थानीय आरएसए कुंजी सेट जेनरेट करना चाहता हूं और उस विशेष भंडार के लिए सार्वजनिक कुंजी को एक नियोक्ता कुंजी के रूप में जोड़ना चाहता हूं। मुझे पता है कि गिटहब के एपीआई का उपयोग करके इसे कैसे किया जाए, लेकिन मुझे बैश का उपयोग करके जेएसओएन पेलोड बनाने में परेशानी हो रही है।एक BASH स्क्रिप्ट के भीतर JSON भेजने के लिए curl का उपयोग

#!/bin/bash 

ssh-keygen -t rsa -N '' -f ~/.ssh/keyname -q 
public_key=`cat ~/.ssh/keyname.pub` 

curl -u 'username:password' -d '{"title":"Test Deploy Key", "key":"'$public_key'"}' -i https://api.github.com/repos/username/repository/keys 

यह सिर्फ ठीक से पेलोड का निर्माण नहीं कर रहा है:

अब तक, मैं इस विशेष प्रक्रिया नीचे शामिल है। जब मैं बैश में स्ट्रिंग हेरफेर की बात करता हूं तो मैं एक विशेषज्ञ नहीं हूं, इसलिए मैं गंभीरता से कुछ सहायता का उपयोग कर सकता हूं। धन्यवाद!

उत्तर

22

यह निश्चित नहीं है, लेकिन यह उद्धृत करने के लिए जहां public_key प्रयोग करने में मदद कर सकते हैं, यानी

curl -u 'username:password' \ 
    -d '{"title":"Test Deploy Key", "key":"'"$public_key"'"}' \ 
    -i https://api.github.com/repos/username/repository/keys 

अन्यथा यह बहुत अगर आप अपने bash स्क्रिप्ट के शीर्ष के निकट खोल के डिबगिंग विकल्पों set -vx का उपयोग डिबग करने के लिए आसान हो जाएगा ।

आप कोड (या ब्लॉक (के लिए की प्रत्येक पंक्ति देखेंगे, जबकि, आदि) के रूप में यह आपकी फ़ाइल में है। तो फिर तुम चर उनके मूल्यों के लिए विस्तार के साथ कोड की प्रत्येक पंक्ति में देखते हैं।

आप तो अभी भी अटक गया है, अपनी पोस्ट में समस्या रेखा के लिए चर के विस्तारित मान दिखाने के लिए अपनी पोस्ट संपादित करें। आप पहली नज़र में उचित दिखते हैं।

+1

आप एक सज्जन और विद्वान हैं। मुझे ये सारी चीज़ें सीखनी पड़ी काफी जल्दी में, इसलिए मैं वास्तव में पूरी तरह से बैश में उचित भागने और स्ट्रिंग हेरफेर को पूरी तरह से समझ नहीं पा रहा हूं। इसके लिए धन्यवाद! –

+2

मैं आपको अपनी अंतर्दृष्टि और उत्सुक विश्लेषणात्मक कौशल के लिए सर की सराहना करता हूं! आपके प्रयासों में निरंतर सफलता! ;-) – shellter

+0

बहुत बहुत धन्यवाद! ऐसे प्रश्नों के कुछ अन्य प्रतिक्रियाएं हैं जो गलत हैं। यही वह चीज है जिसकी मुझे जरूरत थी! – Brian