开发者社区> 问答> 正文

bash脚本使用相对目录的问题

我在开发一个bash的脚本工具,需要用到相对目录。问题是脚本是放在 /usr/local/bin 加入PATH里的,这样我可以在任何地方直接运行,但悲催的是运行过程中,这个相对目录就出问题了。
例如:
/usr/local/bin/cmd.sh

#!/bin/bash
mkdir ../tmp/imgs

这个命令我本意是在 mkdir /usr/local/tmp/imgs
但如果我在家目录运行

~ # sudo cmd.sh
他实际上是去创建 /home/tmp/imgs 的
不用绝对路径的情况下,这种问题怎么解决呢?
因为这个工具是有多个脚本和配置组成的,用绝对路径会有很麻烦的问题。

展开
收起
a123456678 2016-06-16 15:05:08 2122 0
2 条回答
写回答
取消 提交回答
  • http://kodango.com

    一般在代码里面把当前目录先保存下来

    curr_dir=$(cd `dirname $0` && pwd -P)
    
    2019-07-17 19:40:56
    赞同 展开评论 打赏
  • #!/bin/bash
    cd `dirname $0`
    pwd
    2019-07-17 19:40:56
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载