Похоже, что нет, когда процесс помещается в фоновый режим, stdin отделяется от него (иначе он не находится в фоновом режиме). Но не stdout или stderr, которые могут привести к путанице при печати в терминале, когда фоновый процесс печатает некоторые сообщения.
Su comando dialog
, cuya salida se redirige al archivo logservidor
, se está ejecutando en el extremo remoto. Pero la línea que se supone que debe leer su salida:
case `cat logservidor` in
... se está ejecutando localmente, mientras se construye el documento aquí -. Esto se debe a que aquí -los documentos realizan varias expansiones, incluida la sustitución de comandos, en el momento en que se definen.
Puede retrasar esta expansión (para que solo ocurra cuando se ejecuta el script )citandoEOF
:
nc $ip $porta_cliente <<-"EOF"
Pero eso también retrasaría la expansión de variables en el script como $ip
. Si desea que esas variables se expandan de inmediato, pero el comando cat
se ejecuta más tarde, puede evitar los acentos graves:
case \`cat logservidor\` in
También puede depurar el problema usted mismo observando el comando final antes de intentar enviarlo y ejecutarlo. Reemplace la primera línea con
cat > tmp-doc <<-EOF
Luego mire en tmp-doc
para ver qué se habría enviado nc
.