CATATAN: Solusi yang ditawarkan di bawah ini telah diuji dan diketahui berfungsi dengan benar.
Kutipan tunggal akan memecah ekspansi variabel jika Anda telah alias bagian dari jalan yang Anda globbing.
Berikut ini adalah skrip yang menggunakan tanda kutip DOUBLE untuk kasus penggunaan nama file globbed command-configure_ .tar.gz * menggunakan path alias dengan variabel:
#!/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/
Setelah kutip ganda penutup, target direktori lokal dibuat dengan hanya mengekstrak dir home user yang ditentukan dari / etc / passwd .
Perintah scp sendiri diawali dengan sshpass
dan -o StrictHostKeyChecking=no
untuk mengotomatisasi sepenuhnya scp
perintah tanpa interaksi pengguna. Terlihat berbelit-belit tetapi lebih baik daripada jalur hard-coding yang diharapkan berubah dari waktu ke waktu.
Anyhoo, contoh menggunakan tanda kutip ganda di mana variabel di jalur yang Anda globbing perlu diizinkan untuk berkembang. HTH