作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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
不会工作,
有什么建议吗?
最佳答案
一个干净的方法是
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
从每次迭代中调用。
关于bash - 如何在 bash 中使用表达式作为循环计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11357823/
我是一名优秀的程序员,十分优秀!