脚本错误

Error in script

我是 bash 和脚本编写的新手,我正在尝试创建一个简单的脚本,但出于某种原因它不允许我 运行 这个:

fileCount= ls -1 | wc -l

#echo $fileCount

for (( i=0; i<$fileCount; ++i )) ; do
 echo item: $i
done

每当我尝试 运行 时,它只会给我一条错误消息,说它需要一个操作数。 我真的很困惑这里的错误,我们将不胜感激任何帮助!

要让您的代码 运行 发生最少的变化,请替换:

fileCount= ls -1 | wc -l

有:

fileCount=$(ls -1 | wc -l)

$(...)被称为命令替换。当您想要在变量中捕获命令的输出时,您可以使用它。

重要的是等号两边不能有空格。

改进

  • 要加快结果速度,请使用 -U 选项关闭排序。

  • 要防止任何显示特殊字符的尝试,请使用 -q

因此:

fileCount=$(ls -1Uq | wc -l)

最后,当 ls 写入终端以外的东西时,例如在这个命令中,管道,它每行打印一个文件名。这使得 -1 可选。

您错过了将 wc -l 的输出分配给您的变量。试试这个:

fileCount=$(ls | wc -l)

(不需要选项“-1”,因为如果标准输出不是终端,ls 每行写入一个文件)