这是我的第一个Bash脚本,如果这个问题很简单,请原谅我。我需要计算指定目录$ HOME / .junk中的文件数。我认为这很简单,并假设以下内容可行:
numfiles= find $HOME/.junk -type f | wc -l
echo "There are $numfiles files in the .junk directory."
在命令行输入find $HOME/.junk -type f | wc -l
完全符合我的预期,只返回文件数。在我的脚本中输入时,为什么这不起作用?在将选项传递给实用程序时,我是否遗漏了一些特殊符号?
非常感谢你的时间和帮助。
答案 0 :(得分:5)
答案 1 :(得分:4)
如果你使用bash,你也可以使用$()进行命令替换,如下所示:
numfiles=$(find $HOME/.junk -type f | wc -l)
我发现它比反引号稍微更具可读性,并且能够将多个命令嵌套在另一个中。
答案 2 :(得分:1)
使用bash 4(如果你想要递归)
#!/bin/bash
shopt -s globstar
for file in **
do
((i++))
done
echo "total files: $i"
如果不是
#!/bin/bash
shopt -s dotglob
shopt -s nullglob
for file in *
do
((i++))
done
echo "total files: $i"