我有一个bash脚本和一个变量mystring
。
在运行结束时,mystring
将如下所示:/dir1/dir2 /dir1/dir5/dir6 /dir1/dir9/dir20/dir99 ...
这基本上是一个字符串,其中不同的路径用空格分隔。
我需要返回字符串中最长路径的深度。现在我有方向,但我被卡住了:
我尝试将其插入到我的脚本中:
cat $mystring | tr ' ' '\n' | sed 's/[^/]*//g' | # now print length of longest string
它无法识别我正在尝试使用$mystring
的内容,而且我也不知道如何做最后一件事......帮助?
答案 0 :(得分:0)
你应该使用数组作为目录来避免路径中的空间问题
对于字符串的长度,您可以使用$ {#VAR}
DIRS=( "/tmp" "/tmp1" "/tmp/xx xxx/x1" )
MAXLENGTH=0
for LENGTH in "${DIRS[@]}"
do
if [ "$MAXLENGTH" -lt "${#LENGTH}" ]
then
MAXLENGTH="${#LENGTH}"
fi
done
echo $MAXLENGTH