En el caso de un simple return
no hace el trabajo, aquí hay otro enfoque tomado de this blog article:
if `tty -s`; then
mesg n
fi
tty -s
comprueba si hay un teléfono de texto adjunto (el -s
dice que lo haga en silencio y simplemente salir con el código de retorno apropiado). tty
devuelve el tty adjunto (por ejemplo, "/ dev/pts/1"). Esto debería ser más seguro que verificar alguna variable de shell;)
mesg
controla el acceso de escritura a su terminal (msg n
no permite escribir en el terminal (en nuestro caso no existente)), y por lo tanto requiere que haya uno presente.
En algunos sistemas (en mi caso Debian Jessie, pero hay informes también en Ubuntu) mesg n
se pone incondicionalmente, ya sea en ~/.bashrc
o ~/.profile
. Entonces, si existe de esa manera, este podría ser el culpable.
Al igual que en los otros ejemplos, puede hacer que sea un trazador de líneas: [[ $(tty -s) ]] && mesg n
. Y nadie le impide la combinación de los dos:
if [[ $(tty -s) ]]; then
mesg n
else
return
fi
BTW: De acuerdo con el artículo enlazado, este fragmento debe ir a la .bashrc
de la máquina se conecta a (la "distancia") - así que si eso es [email protected]
, esto se debe aplicar al inicio de /home/johndoe/.bashrc
en somehost
. En mi caso, solo me deshice del mensaje después de haber aplicado este cambio también en el "host que llama".
PD: También verifique el .profile
si tiene un comando independiente msg n
(lo hizo en mi caso). Si lo hace, envuélvalo allí.
1:mesg n
se utiliza para evitar que otros usuarios de la máquina de la escritura en el dispositivo terminal actual, que de por sí es una buena cosa - pero no es útil para algunos rsync
trabajo;)
Aparentemente hace lo que se supone que debe hacer. La transferencia de archivos se realizó con éxito. Pero, ¿cuál es el mensaje de error y debería preocuparme por ello? –