Aqui está o que eu fiz e funcionou agora
cat /some/path/abc.txt 2> /dev/null
Dessa forma, o arquivo é impresso se existir e não gera um erro se não existir.
Eu tenho um script de espera que verifica se um arquivo existe em um servidor remoto e, em seguida, tenta imprimir (usando cat) se ele faz
Por algum motivo, o script expect ignora esses comandos.
send "if {[file exists "./abc.test"]} {cat ./abc.txt\r}"
Eu nunca usei o Expect, mas sua amostra de código ...
if {[file exists "./abc.test"]} {send "cat ./abc.txt\r"}
... parece verificar a existência de arquivos na máquina, mas não a remota. Então, a menos que o script esteja sendo executado no servidor remoto, não funcionará.
Hm, você provavelmente está fazendo as coisas de uma forma bastante indireta.
Primeiro, descreva seu contexto:
Finalmente, o que você está realmente tentando fazer? Se você deseja imprimir um arquivo em um sistema remoto, provavelmente é mais fácil chamar diretamente o ssh. Esperar é destinado a programas de script que não possuem uma linguagem de script (como clientes FTP simples). É desnecessariamente complicado usá-lo com um shell de comando, que já possui uma poderosa linguagem de script.