2015-06-30 106 views
-1

好的,我试图让我的脚本循环遍历目录中的n个文件,并使终端在顶部打印3-4行每个文件已被循环。循环遍历目录中的文件并使用HEAD命令

下面是我得到了什么:

#!/bin/bash 

for f in $1 #for the file in the directory (Specified by user) 

do 

head $2 $f #Print the first n lines (Specified by user) of the file. 

done   #finish 

不断看到这是一个错误: 头:无法打开'3' 阅读:没有这样的文件或目录

回答

2

有两种错误你的脚本:

1)如果你指定的目录,你应该循环通过它的通过通配符文件,以便改变

for f in $1 

for f in $1/* 

2)head命令行由-n标志指定的数,因此改变

head $2 $f 

head -n $2 $f 
+0

您好@Jakisa。感谢您的帮助。我已经按照您的建议更改了代码,但是$ f中的变量不是复制$ 1的值,而是使用目录中包含的文件名。有什么建议么? –

+0

如果您运行脚本 script_name directory_name number_of_lines 它应该工作。我已经自己测试过了。 其实,你描述的效果会发生,如果你有“1美元f”而不是“1美元/ *的f”,这就是我写你改变它的原因。 –

相关问题