【发布时间】:2014-09-07 02:21:49
【问题描述】:
我想从 Makefile 调用 ShellCheck,这是一个用于 linting shell 脚本的 Haskell 程序。
当我通过cabal install 安装ShellCheck 时,它被安装为~/.cabal/bin/shellcheck。所以,我已经相应地配置了 Bash:
$ cat ~/.bashrc
export PATH="$PATH:~/.cabal/bin"
$ source ~/.bashrc
$ shellcheck -V
ShellCheck - shell script analysis tool
version: 0.3.4
license: GNU Affero General Public License, version 3
website: http://www.shellcheck.net
这使我能够从 Bash 中的任何目录运行 shellcheck。但是,当我尝试从 Makefile 调用它时,make 找不到 shellcheck。
$ cat Makefile
shlint:
-shlint lib/
shellcheck:
-shellcheck lib/**
lint: shlint shellcheck
$ make shellcheck
shellcheck lib/**
/bin/sh: 1: shellcheck: not found
make: [shellcheck] Error 127 (ignored)
我认为 make 收到的 PATH 与我的普通 Bash shell 不同。我该如何解决这个问题?
【问题讨论】:
标签: unix path makefile environment-variables shellcheck