У меня возникли проблемы с скриптом bash. Я пытаюсь автоматизировать процесс отправки файлов на мой малиновый pi через ssh. Я хочу указать путь к файл/каталог, а затем скопируйте его в каталог /home/pi/push
на моем пике. Затем я хочу спросить, есть ли другой файл для отправки, и если да, тогда выполните цикл назад, иначе выйдите из программы. Я обнулял IP-адрес для очевидных по соображениям безопасности.Ошибка синтаксиса: «(« неожиданный (ожидающий «тогда»)
done=0
while [ $done -lt 1 ]
do
read -r -p "Path to file: " path
spawn scp -r $path [email protected]:/home/pi/push
expect "assword:"
send "password\r"
interact
read -r -p "Send another? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
then
$done=1
else
echo "Ending file transfer."
fi
done
Если у вас есть предложения по лучшим способом для достижения этой цели, что было бы здорово, как хорошо!
Пожалуйста, обратите внимание: http://www.shellcheck.net/ – Cyrus
Параметр 'spawn' здесь меня беспокоит - это' expect' ключевое слово, а не оболочка ключевых слов. Вы не можете смешивать языки так, как вы пытаетесь это сделать, - это два разных интерпретатора с двумя очень разными синтаксисами. –
Хорошая точка @CharlesDuffy. Посмотрите на настройку [аутентификации открытого ключа на ваш Pi] (https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md), чтобы избежать ввода пароля. – miken32