意外的文件结束bash
所以,我有一个,应该从列表中提取一行并重复它。 现在,while循环不工作(?),并返回以下错误:意外的文件结束bash,bash,while-loop,eof,Bash,While Loop,Eof,所以,我有一个,应该从列表中提取一行并重复它。 现在,while循环不工作(?),并返回以下错误:HARR.sh:line 9:语法错误:意外的文件结尾 怎么了?这是你想要的吗 lines=`grep -c "" List` a=1 while [$a -lt $lines] do b=`sed "${a} q;d" List` a=$a+1 echo $b done #/bin/bash
HARR.sh:line 9:语法错误:意外的文件结尾
怎么了?这是你想要的吗
lines=`grep -c "" List`
a=1
while [$a -lt $lines]
do
b=`sed "${a} q;d" List`
a=$a+1
echo $b
done
#/bin/bash
#
设a=1
读行时;做
回显“$a$行”
设a+=1
完成<列表
在[
之后和]
之前的空格:而[$a-lt$lines]
和a=$a+1
->((a++)
@P.P.++
在一些shell中可以工作,但它不是,因此a=$((a+1))
是更便携的选择。查看一些输入+所需的输出会很有用,因为在循环中对同一个文件多次运行sed
可能是不必要的。@TomFenech问题被标记为bash。应至少在bash中可移植;-)会告诉你:在[
之后和]
之前添加空格;使用$()
而不是旧式`
;双引号可以防止全局搜索和分词,也就是说,大多数事情。这可以更好地做到,因为只需nl List
,甚至cat-n List
。a
;该数字仅用于在sed
脚本中选择一行,而不显示在输出中。这不是我要查找的。我有一个名字列表,如果可能的话,我想让它用一段时间来回显这个名字。这是课堂作业吗?不,我甚至没有这个主题。
#!/bin/bash
#
let a=1
while read line; do
echo "$a $line"
let a+=1
done < List