【发布时间】:2012-07-06 07:36:06
【问题描述】:
我是 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
不会工作,
有什么建议吗?
【问题讨论】:
-
a=wc -w test.txt应该用反引号或$()工作,=周围没有空格,即a=$(wc -w test.txt) -
a=$(wc -c test.txt) 或 a=$`wc -c test.txt` 将分配给一个文本值:'6 test.txt',如果您尝试迭代这个值,你当然会得到一个错误(需要算术表达式)
-
使用
a=$(wc -w < test.txt)删除wc输出中的文件名。