2015-06-30 149 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」,這就是我寫你改變它的原因。 –

相關問題