I am working on a bash script, where it will send my commands to `geth` through a simple piping. The problem is for each piping I have to create geth process again, which preload my_script.js into `geth` all over again and this process actually consumes time since my_script.js is large.

    echo "net" | sudo geth --datadir --preload "my_script.js" \
          "/home/MyEthereumEbloc" attach ipc:/home/MyEthereumEbloc/geth.ipc

Output (I can obtain the output correctly):

    >
    {
      listening: true,
      peerCount: 2,
      version: "23422",
      getListening: function(callback),
      getPeerCount: function(callback),
      getVersion: function(callback)
    }

I want to pass information as input and get its output result with `geth` process that works at the background and required to load my_script.js only one time. In order to accomplish this I have tried piping but I wasn't able to make it work. I am sorry if this question might be related to unix but any additional approach to solve this problem would be appreciated.

    mkfifo program.pipe;
    cat > program.pipe &
    sudo geth --datadir "/home/MyEthereumEbloc" attach \
          ipc:/home/MyEthereumEbloc/geth.ipc console >> output.txt < sudo program.pipe

Thank you for your valuable time and help.