EN VI

Bash - How to automatically answer "more" command?

2024-03-13 08:30:05
Bash - How to automatically answer "more" command

For the following script

#!/usr/bin/env bash

more <<_EOF_
  PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT.   PLEASE READ THE TERMS OF THIS AGREEMENT AND ANY PROVIDED TEXT
_EOF_

agreed=
while [ x$agreed = x ]; do
    echo
    echo "Do you accept all the terms?"
    echo "Do you agree to the above license terms? [y/n] "
    read reply leftover
    case $reply in
    y* | Y*)
        agreed=1;;
    n* | n*)
        echo "If you don't agree to the license you can't install this sofware";
        exit 1;;
    esac
done

How do you automatically skip the more command?

printf "y\n" | bash ./file.sh doesn't seem to work.

Solution:

You can do

(more() { :; }; export -f more; script)

and more won't show up.

Answer

Login


Forgot Your Password?

Create Account


Lost your password? Please enter your email address. You will receive a link to create a new password.

Reset Password

Back to login