波纹管命令在终端中工作并打印值1
count_XXX=`ll -d /usr/Systems/XXX* 2> /dev/null | grep ^d | wc -l`
echo "$count_XXX"
目录/ usr / Systems中有一个目录和两个软链接,名称为XXX *。
当我在shell脚本中保留相同的两行时。它打印值0
这在unix(终端和脚本)中运行良好,但是当我尝试在linux服务器上运行时,会出现问题(在脚本中)。
我是否需要为Linux更改内容。
提前致谢。
答案 0 :(得分:2)
使用ll
然后grep
然后wc
对于计算目录来说有点太多了,由于目录名中可能有空格/换行符,这也很容易出错。
在BASH中使用这个简单的片段:
shopt -s nullglob
arr=( /usr/Systems/XXX*/ )
echo ${#arr[@]}
2
/
确保它只匹配目录。shopt -s nullglob
以确保在glob模式与任何内容不匹配时不打印模式