Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
201 views
in Technique[技术] by (71.8m points)

bash - Why does string this cause some terminal windows to close. ".(:2)"

I wrote a script and ran into an odd behavior. Some terminal windows it is run in would suddenly close before the script was completed running.

After a few hours of investigation I tracked the issue down to this line output

init: Command 'mount_all /fstab.ranchu' action=fs (/init.ranchu.rc:2) returned 0 took 1805ms.

After some more refinement I determined this is the minimum sequence needed to regenerate this problem.

.(:2)

If I type this sequence in a terminal tab in Intellij code editor that tab will, after about a second, close itself. More frustrating this problem is occurring when this script is run as part of my build/CI system.

It does not impact all terminals, for example Gnome-terminal and xterm do not have any issues with that sequence.

The digit 2 in that string can actually be any integer up to 9 digits long and it will cause the issue.

I suspect this sequence might be a terminal control sequence but I didn't find anything like that in my research.

Another odd thing is that I sometimes my script output will stall stall(buffer, I can see the script still working) for longer than expected periods.

I found this set of commands solved the buffering issue and the problem with the closing terminal but I would like to know what is going on

./example.sh |& stdbuf -eL -oL sed -s 's/:([0-9][0-9]*))/:_1/'

example.sh looks like this

#!/bin/bash
echo '.(:2)'

stdbuf configures the buffer that is used for the pipe/|&. The sed statement takes .(:2) and turns it into .(:_2) which seems to prevent the problem.

question from:https://stackoverflow.com/questions/65866433/why-does-string-this-cause-some-terminal-windows-to-close-2

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Update:

Looking into this a bit more. Turns out the CI failures were caused by something else that just happened to occur roughly the spot I mentioned above.

After upgrading and restarting IntelliJ the problem disappeared there too.

I am going to blame a random glitch.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...