2.0 KiB
- Reads a single variable
- Reads multiple variables
- Handles more variables than fields
- Handles more fields than variables
- Trims whitespace in extra fields
- Allows escaping line breaks
- Understands raw input flag
;;; 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
Allows escaping line breaks
echo 'foo\
bar' | {
read x
echo $x
}
:STDOUT:
foobar
Understands raw input flag
echo 'foo\
bar' | {
read -r x
echo $x
}
:STDOUT:
foo\