1.\" Copyright (c) 2010 The NetBSD Foundation, Inc. 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 14.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 15.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 16.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 18.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 20.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 22.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 23.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 24.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25.Dd September 27, 2014 26.Dt ATF-SH 1 27.Os 28.Sh NAME 29.Nm atf-sh 30.Op Fl s Ar shell 31.Nd interpreter for shell-based test programs 32.Sh SYNOPSIS 33.Nm 34.Ar script 35.Sh DESCRIPTION 36.Nm 37is an interpreter that runs the test program given in 38.Ar script 39after loading the 40.Xr atf-sh 3 41library. 42.Pp 43.Nm 44is not a real interpreter though: it is just a wrapper around 45the system-wide shell defined by 46.Va ATF_SHELL . 47.Nm 48executes the interpreter, loads the 49.Xr atf-sh 3 50library and then runs the script. 51You must consider 52.Nm atf-sh 53to be a POSIX shell by default and thus should not use any non-standard 54extensions. 55.Pp 56The following options are available: 57.Bl -tag -width XsXshellXXX 58.It Fl s Ar shell 59Specifies the shell to use instead of the value provided by 60.Va ATF_SHELL . 61.El 62.Sh ENVIRONMENT 63.Bl -tag -width ATFXLIBEXECDIRXX -compact 64.It Va ATF_LIBEXECDIR 65Overrides the builtin directory where 66.Nm 67is located. 68Should not be overridden other than for testing purposes. 69.It Va ATF_PKGDATADIR 70Overrides the builtin directory where 71.Pa libatf-sh.subr 72is located. 73Should not be overridden other than for testing purposes. 74.It Va ATF_SHELL 75Path to the system shell to be used in the generated scripts. 76Scripts must not rely on this variable being set to select a specific 77interpreter. 78.El 79.Sh EXAMPLES 80Scripts using 81.Xr atf-sh 3 82should start with: 83.Bd -literal -offset indent 84#! /usr/bin/env atf-sh 85.Ed 86.Pp 87Alternatively, if you want to explicitly choose a shell interpreter, you cannot 88rely on 89.Xr env 1 90to find 91.Nm . 92Instead, you have to hardcode the path to 93.Nm 94in the script and then use the 95.Fl s 96option afterwards as a 97.Em single parameter : 98.Bd -literal -offset indent 99#! /path/to/bin/atf-sh -s/bin/bash 100.Ed 101.Sh ENVIRONMENT 102.Bl -tag -width ATFXSHELLXX -compact 103.It Va ATF_SHELL 104Path to the system shell to be used in the generated scripts. 105.El 106.Sh SEE ALSO 107.Xr atf-sh 3 108