我是 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