我如何知道该路径中有多少个目录?

我如何知道该路径中有多少个目录?

路径如下: /usr/lib64/qt3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/mj1210/.local/bin:/home/mj1210/bin

答案1

它比冒号的数量多 1。

在 awk 中:

echo `awk -F: '{print NF}' <<<"$PATH"`

使用 tr(翻译)和 wc(字数统计):

echo $((`tr -dc : <<<"$PATH" | wc -c`+1))

答案2

实现的方法有很多,这里有一种方法可以避免创建任何进程,一切都在bash.

A=${PATH//[^:]}
echo $((${#A}+1))

例子

$ echo $PATH
/usr/lib64/qt3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/mj1210/.local/bin:/home/mj1210/bin
$ A=${PATH//[^:]}
$ echo $((${#A}+1))
9
$

相关内容