我在Linux世界中是全新的,我使用Bash shell并练习一点。 我如何执行循环给出一个表达式? 例如,循环遍历文件中的单词量。
for n in(wc -w text.txt)
do
echo "word number $n"
done
不幸的是上面的脚本无法正常工作。 到目前为止我找到的唯一方法是首先打印wc -w text.txt的值,然后将其分配给变量然后循环:
wc -w text.txt
a=10 //result saw by wc -w text.txt
for((b=0; b<a; b++))
do
echo "$b"
done
问题是我需要检索wc -c的值并将其直接赋值给变量,以防我必须编写一个自动运行的脚本,问题是
a= wc -w test.txt
无效,
有什么建议吗?
答案 0 :(得分:1)
干净的方法是
tmp=$(wc -w <text.txt)
for ((i=0; i<$tmp; i++))
do
echo $i;
done
<text.txt
部分是必要的,因为通常wc
命令的输出是
wordcount1 INPUTFILE1
wordcount2 INPUTFILE2
...
i
的最大值必须等于文件的字数,因此您必须在循环按预期工作之前取消INPUTFILE1
部分。使用输入流<
而不是文件名可以解决这个问题。
使用临时变量可防止在每次迭代时调用wc
。