executing 2 scripts with connection

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












1















I've been given some challenge: there is an application that provides me some postfix expression and expects to get a solution within 5 seconds.
If there is no solution, it quits, otherwise, it provides additional expression.



The interface is like follow:



<some text>
<expression>
<expecting my result>
<next expression>
<expecting my result>


etc.



If there was only single expression I've thought to use tail -1 command to get the last line to get the expression and use the dc command to evaluate it.
However, as there are unknown number of expressions (so far), I can't use it and have to do some loop till the string which is read is not starting with a number (i.e expression).



Therefore I've though to use 2 scripts:



  1. start the application always send text output to file1 and execute it in the background (script 1)

  2. read the last row of a script the file1 (script 2), evaluate a solution and sent it to file2 (script 2)

  3. read solution from file2, delete file2 (for next solutions), bring the application to foreground, send a solution and then send the application to background (script 1)

However, it seems to be little bit complicate for me.



Any suggestions how to simplify the procedure to solve it?










share|improve this question




























    1















    I've been given some challenge: there is an application that provides me some postfix expression and expects to get a solution within 5 seconds.
    If there is no solution, it quits, otherwise, it provides additional expression.



    The interface is like follow:



    <some text>
    <expression>
    <expecting my result>
    <next expression>
    <expecting my result>


    etc.



    If there was only single expression I've thought to use tail -1 command to get the last line to get the expression and use the dc command to evaluate it.
    However, as there are unknown number of expressions (so far), I can't use it and have to do some loop till the string which is read is not starting with a number (i.e expression).



    Therefore I've though to use 2 scripts:



    1. start the application always send text output to file1 and execute it in the background (script 1)

    2. read the last row of a script the file1 (script 2), evaluate a solution and sent it to file2 (script 2)

    3. read solution from file2, delete file2 (for next solutions), bring the application to foreground, send a solution and then send the application to background (script 1)

    However, it seems to be little bit complicate for me.



    Any suggestions how to simplify the procedure to solve it?










    share|improve this question


























      1












      1








      1








      I've been given some challenge: there is an application that provides me some postfix expression and expects to get a solution within 5 seconds.
      If there is no solution, it quits, otherwise, it provides additional expression.



      The interface is like follow:



      <some text>
      <expression>
      <expecting my result>
      <next expression>
      <expecting my result>


      etc.



      If there was only single expression I've thought to use tail -1 command to get the last line to get the expression and use the dc command to evaluate it.
      However, as there are unknown number of expressions (so far), I can't use it and have to do some loop till the string which is read is not starting with a number (i.e expression).



      Therefore I've though to use 2 scripts:



      1. start the application always send text output to file1 and execute it in the background (script 1)

      2. read the last row of a script the file1 (script 2), evaluate a solution and sent it to file2 (script 2)

      3. read solution from file2, delete file2 (for next solutions), bring the application to foreground, send a solution and then send the application to background (script 1)

      However, it seems to be little bit complicate for me.



      Any suggestions how to simplify the procedure to solve it?










      share|improve this question
















      I've been given some challenge: there is an application that provides me some postfix expression and expects to get a solution within 5 seconds.
      If there is no solution, it quits, otherwise, it provides additional expression.



      The interface is like follow:



      <some text>
      <expression>
      <expecting my result>
      <next expression>
      <expecting my result>


      etc.



      If there was only single expression I've thought to use tail -1 command to get the last line to get the expression and use the dc command to evaluate it.
      However, as there are unknown number of expressions (so far), I can't use it and have to do some loop till the string which is read is not starting with a number (i.e expression).



      Therefore I've though to use 2 scripts:



      1. start the application always send text output to file1 and execute it in the background (script 1)

      2. read the last row of a script the file1 (script 2), evaluate a solution and sent it to file2 (script 2)

      3. read solution from file2, delete file2 (for next solutions), bring the application to foreground, send a solution and then send the application to background (script 1)

      However, it seems to be little bit complicate for me.



      Any suggestions how to simplify the procedure to solve it?







      dc






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 30 '18 at 4:35









      yeti

      2,39611224




      2,39611224










      asked Jun 21 '17 at 8:33









      user1977050user1977050

      144315




      144315




















          1 Answer
          1






          active

          oldest

          votes


















          0














          I suggest looking into named pipes as you shouldn't need a file for any of this.



          However, something like:



          mkfifo mypipe
          script1 <mypipe | grep --line-buffered '^[0-9]' | dc >mypipe


          Should be close to what you want. This assumes that the input has the necessary p commands to make dc actually print the result of the expressions, though.






          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "106"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f372427%2fexecuting-2-scripts-with-connection%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I suggest looking into named pipes as you shouldn't need a file for any of this.



            However, something like:



            mkfifo mypipe
            script1 <mypipe | grep --line-buffered '^[0-9]' | dc >mypipe


            Should be close to what you want. This assumes that the input has the necessary p commands to make dc actually print the result of the expressions, though.






            share|improve this answer



























              0














              I suggest looking into named pipes as you shouldn't need a file for any of this.



              However, something like:



              mkfifo mypipe
              script1 <mypipe | grep --line-buffered '^[0-9]' | dc >mypipe


              Should be close to what you want. This assumes that the input has the necessary p commands to make dc actually print the result of the expressions, though.






              share|improve this answer

























                0












                0








                0







                I suggest looking into named pipes as you shouldn't need a file for any of this.



                However, something like:



                mkfifo mypipe
                script1 <mypipe | grep --line-buffered '^[0-9]' | dc >mypipe


                Should be close to what you want. This assumes that the input has the necessary p commands to make dc actually print the result of the expressions, though.






                share|improve this answer













                I suggest looking into named pipes as you shouldn't need a file for any of this.



                However, something like:



                mkfifo mypipe
                script1 <mypipe | grep --line-buffered '^[0-9]' | dc >mypipe


                Should be close to what you want. This assumes that the input has the necessary p commands to make dc actually print the result of the expressions, though.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 4 '18 at 23:26









                WildcardWildcard

                22.7k962164




                22.7k962164



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f372427%2fexecuting-2-scripts-with-connection%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown






                    Popular posts from this blog

                    How to check contact read email or not when send email to Individual?

                    Displaying single band from multi-band raster using QGIS

                    How many registers does an x86_64 CPU actually have?