无法将路径传递给 shell 脚本

无法将路径传递给 shell 脚本

我是 OSX 新手,不经常使用命令行。我尝试使用脚本进行一些自动部署,但当我执行脚本时,它正在寻找目录。

我试过:

sh myscript.sh '/Users/profiles/Desktop/Development'
sh myscript.sh /Users/profiles/Desktop/Development
sh myscript.sh -/Users/profiles/Desktop/Development

但我一直收到“没有这样的文件或目录”的提示。正确的做法是什么?

我知道这是一个基本问题,但我似乎找不到简单的答案。我在谷歌上找到的一切都比这更高级。

更新:在脚本中,它正在寻找这样的路径:

DIR_DEVELOP=$@

if [ -z $DIR_DEVELOP ]; then
    echo "Syntax: myscript.sh <destination>"
    exit 1

答案1

您必须在 bash 中启用跟踪:

bash -x myscript.sh '/Users/profiles/Desktop/Development'

您将在产生错误的行之后立即看到“没有这样的文件或目录”消息。

答案2

你不需要'在你的路径中使用。根据高级 Bash 脚本指南

$@
与 $* 相同,但每个参数都是带引号的字符串,也就是说,参数会原封不动地传递,不会进行解释或扩展。这意味着,参数列表中的每个参数都被视为一个单独的单词。

因此,您的脚本尝试访问的路径实际上'/Users/profiles/Desktop/Development'/Users/profiles/Desktop/Development

相关内容