CodingGuidelines: do not use 'which' in shell scripts
During the code review of a recent patch, it was noted that shell scripts must not use 'which $cmd' to check the availability of the command $cmd. The output of the command is not machine parseable and its exit code is not reliable across platforms. It is better to use 'type' to accomplish this task. Signed-off-by: Tim Henigan <tim.henigan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Tim Henigan committed
Feb 24, 2012 at 18:12 UTC
860f70f9f4206379361fd5af84c8fde31984b418
1 file changed
+5
Documentation/CodingGuidelines
+5
@@ -46,6 +46,11 @@ For shell scripts specifically (not exhaustive):
46
properly nests. It should have been the way Bourne spelled
47
it from day one, but unfortunately isn't.
48
49
+ - If you want to find out if a command is available on the user's
50
+ $PATH, you should use 'type <command>', instead of 'which <command>'.
51
+ The output of 'which' is not machine parseable and its exit code
52
+ is not reliable across platforms.
53
+
54
- We use POSIX compliant parameter substitutions and avoid bashisms;
55
namely:
56