我使用 Alpine Linux 3.11 作为新的 Docker 容器。
我有默认$PATH
变量,内容如下:
echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Run Code Online (Sandbox Code Playgroud)
当我放置一个脚本wait-for
(以 开头的shell脚本#!/bin/sh
)时,/usr/local/bin
它显示正常:
chmod +x wait-for
mv wait-for /usr/local/bin/wait-for
ls -l /usr/local/bin/wait-for
Run Code Online (Sandbox Code Playgroud)
产生:
-rwxr-xr-x 1 root root 1451 May 1 16:09 /usr/local/bin/wait-for
Run Code Online (Sandbox Code Playgroud)
它也在我使用时运行 sh /usr/local/bin/wait-for
用来执行它。
但是,当我进入/usr/src/
并尝试跑步时,wait-for
我得到了sh: wait-for: not found
我的理解是因为/usr/local/bin
目录在$PATH
位于该目录中,所以应该全局调用任何脚本。
我误解了什么?
/usr/src/
如果我使用sh /usr/local/bin/wait-for
,我可以运行文件,但如果我使用/usr/local/bin/wait-for
(不带sh
前缀),则不能运行,它返回sh: /usr/local/bin/wait-for: not found
.
的输出/etc/fstab
是:
/dev/cdrom /media/cdrom iso9660 noauto,ro …
Run Code Online (Sandbox Code Playgroud)