// Copyright 2010 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// +build aix darwin dragonfly freebsd linux netbsd openbsd solarispackage execimport ()// ErrNotFound is the error resulting if a path search failed to find an executable file.varErrNotFound = errors.New("executable file not found in $PATH")func ( string) error { , := os.Stat()if != nil {return }if := .Mode(); !.IsDir() && &0111 != 0 {returnnil }returnfs.ErrPermission}// LookPath searches for an executable named file in the// directories named by the PATH environment variable.// If file contains a slash, it is tried directly and the PATH is not consulted.// The result may be an absolute path or a path relative to the current directory.func ( string) (string, error) {// NOTE(rsc): I wish we could use the Plan 9 behavior here // (only bypass the path if file begins with / or ./ or ../) // but that would not match all the Unix shells.ifstrings.Contains(, "/") { := findExecutable()if == nil {return , nil }return"", &Error{, } } := os.Getenv("PATH")for , := rangefilepath.SplitList() {if == "" {// Unix shell semantics: path element "" means "." = "." } := filepath.Join(, )if := findExecutable(); == nil {return , nil } }return"", &Error{, ErrNotFound}}
The pages are generated with Goldsv0.3.6. (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.