Skip to content

Instantly share code, notes, and snippets.

@nhthai2005
Last active June 28, 2021 04:57
Show Gist options
  • Save nhthai2005/a093c0082408ea35183cda2c0b65f71a to your computer and use it in GitHub Desktop.
Save nhthai2005/a093c0082408ea35183cda2c0b65f71a to your computer and use it in GitHub Desktop.
Shell unbuffering for CygWin: is it possible?
  • Installing the Expect package and naming "unbuffer" this script:
#!/usr/bin/expect --
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST
eval spawn -noecho $argv
set timeout -1
expect
  • Installing the Expect package and naming "unbuffer" this other script:
#!/usr/bin/expect --
# Description: unbuffer stdout of a program
# Author: Don Libes, NIST
if {[string compare [lindex $argv 0] "-p"] == 0} {
    # pipeline
    set stty_init "-echo"
    eval spawn -noecho [lrange $argv 1 end]
    close_on_eof -i $user_spawn_id 0
    interact {
    eof {
        # flush remaining output from child
        expect -timeout 1 -re .+
        return
    }
    }
} else {
    set stty_init "-opost"
    set timeout -1
    eval spawn -noecho $argv
    expect
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment