击:获得路径中的所有路径 [英] Bash: get all paths from path

查看:109
本文介绍了击:获得路径中的所有路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说我有路径 GUI /网站/初中/ profile.py

我如何得到这样的:

gui
gui/site
gui/site/junior

奖金,如果你能告诉我如何通过每个路径循环:D

Bonus if you tell me how to loop through each path :D

推荐答案

您可以使用shell的内置分裂设施。 IFS 指定分割什么。

You can use the shell's built-in splitting facilities. IFS specifies what to split on.

oldIFS=$IFS
IFS=/
set -f
set -- $path
set +f
IFS=$oldIFS
for component in "$@"; do
    echo "$component"
done

这可以在许多方面进行重构,但我想改变为 IFS 来只管理实际的分裂。

This could be refactored in many ways, but I want the change to IFS to only govern the actual splitting.

使用设置来分割字符串转换成位置参数稍有模糊,但非常值得了解的。

The use of set to split a string into positional parameters is slightly obscure, but well worth knowing.

您应该妥善保管,以未设置 IFS 如果最初未设置的,但我克扣了。

You should properly take care to unset IFS if it was originally unset, but I'm skimping on that.

这篇关于击:获得路径中的所有路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆