gash/tests/read.org

1.6 KiB
Raw Blame History

;;; Gash Guile As SHell ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of Gash. ;;; ;;; Gash is free software: you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation, either version 3 of the License, or ;;; (at your option) any later version. ;;; ;;; Gash is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Gash. If not, see <http://www.gnu.org/licenses/>.

Reads a single variable

  echo foo | {
      read x
      echo $x
  }

:STDOUT:

  foo

Reads multiple variables

  echo foo bar | {
      read x y
      echo $x
      echo $y
  }

:STDOUT:

  foo
  bar

Handles more variables than fields

  echo foo bar baz | {
      read x y
      echo $x
      echo $y
  }

:STDOUT:

  foo
  bar baz

Handles more fields than variables

  echo foo | {
      read x y
      echo $x
      echo $y
  }

:STDOUT:

  foo

Trims whitespace in extra fields

  echo foo bar 'baz   ' | {
      read x y
      echo $x
      echo $y
  }

:STDOUT:

  foo
  bar baz