命令未发现 .sh 问题

command not found issue with .sh

我想创建一个 .sh 脚本,它调用另一个带有变量的 .sh。

如果我将下面的脚本放入终端,它会完美执行。

~/Dropbox/dropboxignore.sh genupi ~/Dropbox/

这条线也直接通过终端工作。

dropboxignore genupi ~/Dropbox/

但是如果我将上述任何命令放入另一个“.sh”,它会按预期显示以下错误。

~/Dropbox/dropboxignore_sync.sh: command not found

下面是我的新“.sh”

export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
~/Dropbox/dropboxignore.sh genupi ~/Dropbox/

如果有人能对此提供帮助,我们将不胜感激。

这与您的 PATH 设置无关。

POSIXshell不明白~。您可以通过 bash 或 zsh 运行 您的脚本,如果它被编写为与这些 shell 之一兼容,即

zsh ~/Dropbox/dropboxignore.sh genupi ~/Dropbox/

bash ~/Dropbox/dropboxignore.sh genupi ~/Dropbox/

(我可以假设调用脚本已经 运行 在合适的 shell 中;否则你会得到 dropboxignore.sh 的错误。

因为你没有给我们展示dropboxignore.sh的完整内容,所以我不能说zsh或bash是否有效,或者两者都可以;但至少 dropboxignore.sh 的作者应该知道他想到的 shell。

另一种可能性当然是在dropboxignore.sh中添加一个合适的#!行,以确保它被正确的shell调用。