Любые изменения, сделанные shopt, будут влиять только на оболочку, в которой вы работаете, когда выполняете команду. IE, как только вы закроете оболочку, изменения исчезнут. Так что, если вы не любите держать одну оболочку открытой долгое время (что некоторые и делают, используя screen
или подобное), вам не нужно беспокоиться об этом.
Лично я использую rsync, как предложил @Kusalananda
Чтобы захватить стену, вы должны создать сценарий ожидания:
#!/usr/bin/expect -f
spawn sshpass -p XXX ssh login@domain
expect "$ "
send "ls\r"
expect "$ "
send "exit\r"
и захватить вывод, подобный этому
OUTPUT=$(expect expectscript)
Вы должны использовать ключи ssh.
Это позволило мне захватить выходные данные хоста
user@host /tmp# output=$(ssh login@domain "ls")
login@domain's password:
user@host /tmp# echo $output
file1
file2
file3
Еще одно решение, возможно, даже лучше, так как оно записывает все, включая баннер, а не только вывод:
ssh user@domain |tee /tmp/output
Где /tmp/output содержит полный журнал.