Posso criar um arquivo especial no linux que seja realmente a saída de um script? [fechadas]

0

Posso criar um arquivo especial no linux, talvez usando o mknod, que na verdade é a saída de um script?

exemplo:

cat specialfile

saída:

testing 123

dentro de um arquivo especial:

echo "testing 123"

Então, em vez de realmente mostrar echo "testing 123"
mostra o resultado da saída do script testing 123

Eu percebo que o nome do script e o identificador de saída podem ter que ser dois arquivos diferentes para que possam ser editados ie. specialfile.sh para o script e specialfile para o identificador

    
por ck_ 03.08.2013 / 12:24

2 respostas

2

Você pode criar um FIFO nomeado ( mkfifo <name> ) e fazer:

mkfifo my-fifo
echo "testing 123" > my-fifo

E em outro shell, faça:

dumb-program my-fifo

Para o programa mudo, o FIFO parece um arquivo (não completamente, já que não será procurado). Isso equivale a fazê-lo com pipes anônimos como este:

echo "testing 123" | dumb-program /dev/stdin

Ou usando a substituição de processos em shells modernas como esta:

dumb-program <(echo "testing 123")

Não tenho certeza sobre os nós de dispositivos, mas, para mim, parece que você está abordando o problema da maneira errada.

    
por 03.08.2013 / 20:41
0

Você pode executar o cat em um subshell na linha de comando:

$(cat specialfile)

A saída será então interpretada pelo shell.

    
por 03.08.2013 / 12:29