*screen -d -m -S Screen-Name* *screen -S Screen-Name -p 0 -X stuff "Command1; Command2 | Command3 && Command4"$(echo -ne '\015')*
This first creates a screen session running a shell, most likely bash. Second, it sends some commands to the terminal input using stuff. In this case, you could append the `exit` command to your chain of commands to make the shell exit. Alternatively, you could instead use a single screen command to start a bash shell in non-interactive mode, and provide the commands to it instead of stuffing them through screen: screen -dRS Screen-Name /bin/bash -c "echo 1; echo a | sed s/a/A/; echo 2 > /tmp/hooha.txt" This will automatically close when finished, and avoids stuff entirely. On Tue, Nov 22, 2016 at 2:37 PM, aws backup <albatin.salta...@gmail.com> wrote: > Ok I figured out the correct syntax. > > *screen -d -m -S Screen-Name; screen -S Screen-Name -p 0 -X stuff > "Command1; Command2 | Command3 && Command4"$(echo -ne '\015')* > > $(echo -ne '\015') starts the command pipe in the screen session. But now > the screen is not terminating anymore after the command pipe has finished > as it did before when it only received one command. Therefore the script > runs into an error when it runs the next time because it makes a new screen > session with the same name and then it does not know to which screen > session to send the command. > > Why is it not terminating the session anymore? Is there a command which I > can send there? > Any other suggestion how to solve this problem? > > Thank you. > > > > On 19 Nov 2016, at 14:19, Colin Richardson <wormssm...@gmail.com> wrote: > > Oh, there is.a trick to that too. I will need to check on my raspberry pi, > but I think you can send a ^M at the end and it acts like the user pressing > ENTER. I don't remember the exact char off the top of my head and I am out > and about shipping at the moment, but shoulder be able to google the > command IDF is not M. > > On 19 Nov 2016 11:54 am, "aws backup" <albatin.salta...@gmail.com> wrote: > > Hi Colin, > > thank you. I tried but nothing arrived in the screen or it did arrive but > didn't start. > What is the exact syntax? Can I start the screen and send the commands in > one command or do I have to start the screen in one command and in the next > command I send the pipeline? I tried it like this: > > *screen -d -m -S Screen-Name; screen -S **Screen-**Name -p 0 -X stuff > "Command1; Command2 | Command3 && Command4"* > > How is it with quotations in the command pipe? Can they interfere? For > example: -X stuff "command "$f" | command2 "text"" > > Thank you. > > > > On 19 Nov 2016, at 12:07, Colin Richardson <wormssm...@gmail.com> wrote: > > Have u tried -X stuff "command | command2" with the quotes? > > On 19 Nov 2016 7:36 am, "aws backup" <albatin.salta...@gmail.com> wrote: > >> Hello, >> >> I would like to start a screen session in detached mode and send a >> command pipeline to it. How can I do this? >> With my approach >> >> *screen -d -m -S Name Command1; Command2 | Command3 && Command4* >> >> only Command1 is send to the screen. >> >> Thank you. >> >> >> >> _______________________________________________ >> screen-users mailing list >> screen-users@gnu.org >> https://lists.gnu.org/mailman/listinfo/screen-users >> >> > > > > _______________________________________________ > screen-users mailing list > screen-users@gnu.org > https://lists.gnu.org/mailman/listinfo/screen-users > >
_______________________________________________ screen-users mailing list screen-users@gnu.org https://lists.gnu.org/mailman/listinfo/screen-users