ПРИМІТКА. Рішення, що пропонується нижче, тестується та, як відомо, працює правильно.
Одинові котирування порушать змінне розширення, якщо ви відлучили частину шляху, який ви глобалізуєте.
Ось сценарій, який використовує DOUBLE лапки для випадку використання глобульового імені файла command-configure_ .tar.gz *, використовуючи шлях, псевдонім зі змінною:
#!/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/
Після завершення подвійної лапки ціль локального каталогу будується шляхом вилучення вказаного домашнього режиму користувача з / etc / passwd .
Сама команда scp є попередньою sshpass
і -o StrictHostKeyChecking=no
повністю автоматизує scp
команду без взаємодії з користувачем. Виглядає складною, але краще, ніж твердо кодування шляхи, які, як очікується, час від часу змінюватимуться.
Anyhoo, приклад з використанням подвійних лапок, де змінні в шляху, який ви глобалізуєте, потрібно дозволити розширювати. HTH