获取 OS X shell 脚本在脚本中所在的路径...当路径包含空格时
我在 Bash 脚本中使用它来获取运行脚本的路径。在 OS X 中需要双击 .command 文件。
#!/bin/bash
BASEDIR=$(dirname $0)
cd $BASEDIR
问题是当路径有空格时它不起作用。你该如何解决这个问题?
I am using this in a Bash script to get the path where I have run the script from. It is necessary for double clicking a .command file in OS X.
#!/bin/bash
BASEDIR=$(dirname $0)
cd $BASEDIR
The problem is it doesn't work when the path has spaces. How might you fix that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您必须使用引号:
You have to use quotes:
我用它来启动我的 plackup 服务器,我的:“run.command”
I'm using this to start my plackup server, my: "run.command"
这可能是一件很愚蠢的事情。之前的答案都无法解析符号链接。
这个应该是相当可移植的(用破折号和bash进行双重检查),并且将遍历路径中带有空格的符号链接:
This can be a doozy. None of the prior answers will resolve symlinks.
This one should be reasonably portable (double-checked with dash and bash), and will traverse symlinks with whitespace in the path(s):