Пакетный файл SFTP BSD Zsh с ожиданием синтаксиса

avatar
nwood21
1 июля 2021 в 20:10
34
1
1

У меня есть zsh-скрипт в MacOS — я пытаюсь автоматизировать -b (параметр пакетного файла), но "~", похоже, не раскрывается в синтаксисе ожидания. Expect не может найти расположение пакетного файла в этом каталоге, хотя он там есть. Нужен ли мне полный путь или глобальные переменные, такие как $HOME, не работают в ожидании?

deletedfiles=$(/usr/bin/expect <<SFTP
    set timeout -1
    spawn /usr/bin/sftp -b ~/Desktop/pgmfilesremoved.txt Port=${port} ${sftpuser}@${host}
    expect "Password authentication"
    expect "Password:"
    send "${password}\r"
    expect "sftp>"
    send "exit\r"
    SFTP
    )
Источник

Ответы (1)

avatar
glenn jackman
1 июля 2021 в 20:44
1

Поскольку heredoc не заключен в кавычки, оболочка расширяет переменные перед запуском expect. Используйте $HOME: тильда не имеет особого значения в Tcl/expect.