NOT: Aşağıda sunulan çözüm test edilmiştir ve doğru çalıştığı bilinmektedir.
Tek tırnaklar, hedeflediğiniz yolun bir kısmını takma iseniz değişken genişlemesini bozacaktır.
Burada , değişkenli bir takma adı olan yolu kullanan globbed dosyaadı command-configure_ .tar.gz * kullanım durumu için DOUBLE tırnaklarını kullanan bir komut dosyası :
#!/bin/bash
USEREXECUTINGSCRIPT='admin'
SCRIPTSDIR="myscripts"
SCPUSER='terrencehoulahan'
SCPUSERPASSWD='Change-Me'
SCPHOST='1.2.3.4'
SCPDIRECTORYREMOTE='/Users/terrencehoulahan/Downloads/Ubuntu/18.04'
## Uncomment appropriate below command for your distro to install "sshpass"
#apt-get -y sshpass
#yum -y install sshpass
sshpass -p "$SCPUSERPASSWD" scp -o StrictHostKeyChecking=no $SCPUSER@$SCPHOST:"$SCPDIRECTORYREMOTE/command-configure_*.tar.gz" $(getent passwd|grep ^$(echo $USEREXECUTINGSCRIPT)|cut -d ':' -f6)/$SCRIPTSDIR/
Kapanış çift teklifinden sonra, yerel dizin hedefi, yalnızca belirtilen kullanıcının ana dizinini / etc / passwd dizininden çıkarmak suretiyle oluşturulur .
SCP komutun kendisi ile başında olan sshpass
ve -o StrictHostKeyChecking=no
tamamen otomatik hale getirmek için scp
kullanıcının müdahalesi olmadan komutu. Kıvrımlı fakat zaman zaman değişmesi beklenen kodlama yollarından daha iyi görünüyor.
Her neyse, globbing yolunuzdaki değişkenlerin genişlemesine izin verilmesi gereken çift tırnak kullanan bir örnek. HTH