Вы хотите, чтобы ваш сценарий проверял, идет ли его стандартный вывод на tty или нет.
Ссылаясь на этот вопрос о переполнении стека, проверьте isatty в bash
#!/bin/bash
# set the terminal title, if I'm running in a terminal
if [[ -t 1 ]]; then echo -ne "\033]0;${1}\007"; fi
/usr/bin/ssh "$@"
Обратите внимание, что вы всегда хотите процитировать "$ @"
Краткое изложение:
exec 5<>
открывает новый дескриптор файла для чтения и записи, а затем называет его 5
cat <&5
читает из этого вновь открытого дескриптора файла
2>&5 >&5
перенаправляет вывод как дескриптора файла 2
(stderr), так и дескриптора файла 1
( stdout) в дескриптор файла 5
. 1
в данном случае подразумевается, поскольку номер дескриптора файла не был указан при втором перенаправлении.
Ответы на некоторые части вашего вопроса приведены здесь
Но