2012-01-17 32 views
10

Tamam, burada yapmaya çalıştığım şey. Bash'da, uzak bir sunucuda GitHub'dan özel bir depo kontrol edecek bir hızlı derleme komut dosyası yazmaya çalışıyorum. Bunu mümkün olduğu kadar "eller kapalı" yapmak için uzak sunucuda ayarlanmış bir yerel RSA anahtarı oluşturmak ve ortak anahtarı söz konusu depo için bir Dağıtım Anahtarı olarak eklemek istiyorum. GitHub'un API'sini kullanarak bunu nasıl yapacağımı biliyorum, ancak Bash kullanarak JSON yükünü oluştururken sorun yaşıyorum. Sadece düzgün yük bina değilJSON'u bir BASH komut dosyası içinde göndermek için cURL kullanma

#!/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 

:

Şimdiye kadar, ben bu özel süreç aşağıda yer var. Bash’de dize manipülasyonu söz konusu olduğunda uzman değilim, bu yüzden bazı yardımları ciddiye alabilirim. Teşekkürler! ,

cevap

22

belli değil, ama public_key kullanmak nerede alıntı yardımcı olabilir yani Aksi

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

o size bash script üst kısmına yakın set -vx kabuk ayıklama seçeneklerini kullanmak durumunda hata ayıklamak için çok daha kolay olacaktır .

bunu dosyanızda olduğu gibi. Sonra onların değerlerine genişletilmiş değişkenlerle her kod satırının bakınız) vb ederken, kod (veya bloğun (her satırını göreceksiniz

.

Eğer 'hala hala takıldınız, komut dosyanızdaki problem çizgisi için değişkenlerin genişletilmiş değerlerini göstermek için gönderinizi düzenleyin. İlk bakışta nelere dikkat edersiniz

+1

Bir beyefendi ve bir akademisyensiniz. Oldukça acele, bu yüzden Bash henüz doğru kaçan ve dize manipülasyon tam olarak kavramak değil.Onlar için teşekkürler! –

+2

Sizin içgörü ve keskin analitik beceriler için efendim, size yardımcı olur! Sizin çabalarında Devam başarı! ;-) – shellter

+0

Çok teşekkür ederim! Benzer sorulara yanlış olan birkaç cevap daha var. Bu sadece ihtiyacım olan şey! – Brian

İlgili konular