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 March 6, 2017 26.Dt ATF-SH 1 27.Os 28.Sh NAME 29.Nm atf-sh 30.Nd interpreter for shell-based test programs 31.Sh SYNOPSIS 32.Nm 33.Op Fl s Ar shell 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.It Va ATF_SHELL 79Path to the system shell to be used in the generated scripts. 80.El 81.Sh EXAMPLES 82Scripts using 83.Xr atf-sh 3 84should start with: 85.Bd -literal -offset indent 86#! /usr/bin/env atf-sh 87.Ed 88.Pp 89Alternatively, if you want to explicitly choose a shell interpreter, you cannot 90rely on 91.Xr env 1 92to find 93.Nm . 94Instead, you have to hardcode the path to 95.Nm 96in the script and then use the 97.Fl s 98option afterwards as a 99.Em single parameter : 100.Bd -literal -offset indent 101#! /path/to/bin/atf-sh -s/bin/bash 102.Ed 103.Sh SEE ALSO 104.Xr atf-sh 3 105