Shell中获得脚本所在的文件位置

# 下面的代码在fork,source,exec下均有效
_file=${BASH_SOURCE-$0}
_path=`dirname ${fl}`

有这么一个情况, 脚本的目录结构如下

|- a.sh

|- x

   |- b.sh

   |- c.sh


其中a.sh使用source方式调用b.sh, 而b.sh中使用source方式调用c.sh.

在这种情况下, b.sh中调用c.sh时会遭遇路径的问题, 由于source方式下在b.sh中的$0是从a.sh中继承过来的, 所以用`dirname $0`来确定b.sh的路径是不正确的, 这时就需要采用最上方的代码来获得b.sh的路径, 有了这个路径就能来定位c.sh了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本,可以使用sed命令来修改文件内容。可以按照步骤进行操作: 1. 首先,使用grep命令来检查是否能够匹配到要修改的参数。如果无法匹配到,则可以使用echo命令将完整的参数和数值信息添加到文件末尾。 2. 如果能够匹配到要修改的参数,可以使用sed命令来替换参数所在的整行内容。可以使用sed命令的s选项来指定要替换的模式和替换的内容。 3. 在进行替换之前,建议先备份文件,以防止修改错误导致数据丢失。可以使用cp命令来创建文件的备份副本。 使用这些步骤,可以在Shell脚本实现批量修改文件的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Shell脚本实现批量替换文件内容](https://download.csdn.net/download/weixin_38686658/12846316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Shell脚本案例---修改配置文件](https://blog.csdn.net/oldboy1999/article/details/128233372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值