Следующая команда отправляет одну команду на sftp
использование одной строки:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
Как отправить несколько строк, sftp
используя одну строку. Есть ли способ вставить возврат каретки или что-то для этого, например:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
Идея состоит в том, чтобы НЕ использовать sftp -b
опцию, в которой загружаются внешние команды перечисления файлов.
<<<
сначала был представлен zsh (хотя и вдохновленrc
), а затем был добавлен в ksh93, а затем в bash.zsh
навыки.Используйте
-b/--batchfile
опцию для правильной обработки ошибок:источник
Да, вы можете просто использовать
echo -e
источник
echo
очень нестандартно -echo -e
не везде работает одинаково, так что вам нужно сначала проверить. В качестве альтернативы, просто используйте,printf
который является гораздо более портативным и должен работать везде одинаково.Нет необходимости избегать
-b
опции, позволяющей избежать записи командного файла на диск. Используя процесс замены, вы можете создать пакет на лету.источник
Используйте нативную команду sftp
источник
lcd
иcd
делать разные вещи. Вы только что объединили пути в то, чего не будет.Mybru, вы можете передать свои команды следующим образом:
источник