gpt4 book ai didi

bash - 如何在 bash 中使用表达式作为循环计数器?

转载 作者:行者123 更新时间:2023-11-29 09:14:56 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com