Как узнать, сколько каталогов на этом пути?

Путь выглядит следующим образом: /usr/lib64/qt3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/mj1210/.local/bin:/home/mj1210/bin

Это больше, чем количество двоеточий.

В awk:

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

С tr (переводить) и wc (количество слов):

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

Много способов добиться, вот один из способов, который позволяет избежать любых процессов, делает все это в 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 $