benim için çalışmıyor şu:ssh uzaktan değişken atama?
ssh [email protected] "k=5; echo $k;"
Sadece boş satır döndürür.
Uzak oturumda (ssh) bir değişkeni nasıl atayabilirim?
Not: Benim sorum benim ssh oturumuna yerel değişkenleri nasıl geçirileceği konusunda değil, daha çok oluşturabilir ve uzak değişkenleri nasıl atanacağı. (Oldukça yalındır görev olmalıdır?)
Düzenleme:
Daha ayrıntılı olarak bunu yapmak çalışıyorum:
bkp=/some/path/to/backups
ssh [email protected] "bkps=($(find $bkp/* -type d | sort));
echo 'number of backups: '${#bkps[@]};
while [ ${#bkps[@]} -gt 5 ]; do
echo ${bkps[${#bkps[@]}-1]};
#rm -rf $bkps[${#bkps[@]}-1];
unset bkps[${#bkps[@]}-1];
done;"
bulmak komutu çalışıyor fakat için bazı nedenlerle $bkps
doldurulmuyor. Yani benim tahminim ben her şey kontrol ettikten düşünüyorum çünkü
İpucu önce yerel olarak komutu deneyin veya ssh sunucusuna giriş yapın ve deneyin. Bash, ortam değişkenlerini ayarlamak için verme komutunu kullanmanızı gerektirir. ssh [email protected] "dışa aktarma k = 5; echo $ k;" – Codeguy007
@ Codeguy007: Sorunumu daha fazla açıklamamı genişlettim. Aslında herhangi bir ortam değişkenini ayarlamaya çalışmıyorum. Ben basitleştirilmiş sorunun aslında yeniden yönlendirilmesi ile bir ilgisi olduğunu varsayalım. – Pitt
'ssh [email protected] deneyin "k = 5; echo \ $ k;" '. Kabuğun erken genişlemesini önlemek için '$' öncesindeki ters eğik çizgiyi not edin. Çift tırnak yerine tek tırnaklar aynı şeyi gerçekleştirir. – twalberg