;;; Gash -- Guile As SHell ;;; Copyright © 2016, 2017, 2018 R.E.W. van Beusekom ;;; Copyright © 2018, 2019 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2019 Timothy Sample ;;; ;;; 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 . * function-at :script: #+begin_src sh foo () { echo $#:$@ echo 0:$0 echo 1:$1 echo 2:$2 } foo -v $@ #+end_src :args: ("-s" "--long" "file0" "file1") :stdout: #+begin_example 5:-v -s --long file0 file1 0:test 1:-v 2:-s #+end_example * function :script: #+begin_src sh foo () { echo $1 } echo before foo bar foo baz echo after #+end_src :stdout: #+begin_example before bar baz after #+end_example * subst :script: #+begin_src sh subst () { sed \ -e s",foo,bar,"\ $1 > $2 } subst tests/data/foo $TEST_TMP/foo.tmp cat $TEST_TMP/foo.tmp rm $TEST_TMP/foo.tmp #+end_src * Too many arguments to return :script: #+begin_src sh foo () { return 1 2 3 } foo #+end_src :status: 1 * Top-level return :script: #+begin_src sh return #+end_src :status: 0