小编ali*_*s51的帖子

在 Linux Alpine 3.11 上找不到 $PATH 中的 SH 脚本

我使用 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)

linux path shell-script alpine-linux

6
推荐指数
1
解决办法
4025
查看次数

标签 统计

alpine-linux ×1

linux ×1

path ×1

shell-script ×1