linux - 即使将其目录添加到 "PATH"变量,也无法从某些目录执行 Shell 脚本

标签 linux shell

我编写了以下基本脚本并将其保存为my_script:

#!/bin/sh
# My first script

echo "Hello World!"

然后我运行以下命令:chmod 755 my_script 以授予 shell 执行脚本的权限。我将此脚本放在我的 bin 目录中,该目录是我的用户 (macbook > bin) 的子目录。我通过执行 export PATH=$PATH:bin 将此目录添加到我的路径中。我仔细检查了 bin 目录是否已添加到 PATH,确实如此。我只能在 bin 目录或我的用户目录中运行脚本。但是,例如,如果我导航到 macbook > 文档,并尝试通过键入 my_script 来执行脚本,它将不会执行。我收到以下错误:-bash: bin/my_script: No such file or directory

为什么我的脚本没有在这些其他目录中执行?

最佳答案

您需要将绝对路径添加到 $PATH:

export PATH=$PATH:$HOME/bin

否则 shell 将始终搜索当前目录的 bin 子目录(仅当您的当前目录为 $HOME 时有效)

关于linux - 即使将其目录添加到 "PATH"变量,也无法从某些目录执行 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17181441/

相关文章:

xml - 用于格式化 XML 文件并保留空行和注释的 CLI 工具

linux - vdso32 和 vdsox32 有什么区别?

c - waitpid 在不应该的时候阻塞

linux - awk 仅在 uniq 列中打印行数

linux - 请帮我解决 Linux/openCL 权限混淆问题

linux - linux中所有参数为NULL或nullptr时 'select()'有什么作用

linux - Grep 查找行号后的下一个空行

ruby - 如何创建支持 Ruby 的 shell 命令?

bash - 按上次编辑日期列出文件

linux - 按包含小数的名称对文件排序