Bash Mac Shell.sh命令不可能
是否可以在Mac上的.sh Shell脚本中执行Bash Mac Shell.sh命令不可能,bash,macos,shell,sh,Bash,Macos,Shell,Sh,是否可以在Mac上的.sh Shell脚本中执行where 如果在终端中执行where,则命令存在并起作用 如果在.sh文件中执行where,则会出现错误:/TestInternal.sh:line 16:where:command not found 我如何修复/理解?我发现where是的扩展版本,其中。如果我在.sh脚本中使用,它会工作 来源:其中为zsh ism。改为使用什么取决于脚本使用的shell。是否为#/bin/sh#/usr/bin/env bash?还有别的吗?(顺便说一句,.
where
如果在终端中执行where
,则命令存在并起作用
如果在.sh文件中执行where
,则会出现错误:/TestInternal.sh:line 16:where:command not found
我如何修复/理解?我发现
where
是的扩展版本,其中
。如果我在.sh脚本中使用,它会工作
来源:其中
为zsh ism。改为使用什么取决于脚本使用的shell。是否为#/bin/sh
<代码>#/usr/bin/env bash
?还有别的吗?(顺便说一句,.sh
并不是一种特别有用的文件类型描述——不幸的是,许多人将.sh
作为所有脚本的扩展,不管解释器是什么;因此,.sh
扩展不仅可以在POSIX sh脚本上找到,还可以在bash脚本、zsh脚本、ksh脚本和许多其他脚本上找到;没有k如果您只有文件扩展名,则不知道将使用什么解释器:您需要检查shebang行)NO.,它是一个外部命令,而不是shell内置命令。它无法访问shell的一组定义函数、别名、路径缓存等,而且运行速度也很慢(因为它需要启动一个单独的可执行文件)。如果您的shell是bash
,您可能需要type
,或者如果它是sh
,您可能需要command-v
,这几乎总是错误的。那么基思的答案似乎可以改进。基思的答案确实讨论了type-a
,并将其描述为“bash等价物”。我试过在th.sh脚本中使用type
,但似乎不起作用。可能type
的语法与which
的语法不同。再说一次:您的shell使用哪种解释器?不知道它是哪种脚本,我无法告诉您正确的用法(你说得对,type
确实有语法,而没有语法)。