ПРИМЕЧАНИЕ. Предлагаемое ниже решение протестировано и, как известно, работает правильно.
Одинарные кавычки нарушат раскрытие переменной, если вы наложили псевдоним на часть пути, который вы используете.
Вот скрипт, который использует кавычки 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, пример использования двойных кавычек, где переменные в пути, который вы глобализируете, должны иметь возможность расширяться. НТН