以下命令在终端中运行并打印值 1
count_XXX=`ll -d /usr/Systems/XXX* 2> /dev/null | grep ^d | wc -l`
echo "$count_XXX"
/usr/Systems目录下有一个目录和两个软链接(soft link)同名XXX*。
当我在 shell 脚本中保留相同的两行时。它打印值 0
这在 unix(终端和脚本)中工作正常,但是当我尝试在 linux 服务器中运行时,问题发生了(在脚本中)。
我需要为 Linux 改变什么吗?
提前致谢。
最佳答案
使用 ll
然后是 grep
然后是 wc
对计算目录来说有点太多了,而且由于可能有空格,这也很容易出错/目录名称中的换行符。
在 BASH 中使用这个简单的片段:
shopt -s nullglob
arr=( /usr/Systems/XXX*/ )
echo ${#arr[@]}
2
/
在 glob 模式的末尾确保它只匹配目录。shopt -s nullglob
确保在 glob 模式不匹配任何内容时不打印模式
关于linux - 命令在终端而不是脚本中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28212677/