2013-01-10 87 views
-1
#!/bin/bash 
while read -r line; do 
mkdir "UNIX/$line" 
done < usernames.lnk 

我運行如下腳本時有這樣的錯誤。我已檢查是否有拼寫錯誤,但兩者的腳本和用戶名的文件是在同一文件夾但它不能檢測到該文件。的bash腳本錯誤

/home/user/Documents/New/taskscript.sh: line 4: usernames.lnk: No such file or directory 

回答

0

嘗試使用

./usernames.lnk 

,而不是

usernames.lnk 
1

的用戶名文件必須在當前目錄,當你運行該腳本 - 有它在相同的目錄當你調用該目錄的腳本腳本纔有效。

你應該在最後一行,如果你希望能夠調用腳本從任何地方使用的完整路徑。

+0

證實了這一工作,謝謝 – darkeve

4

該腳本將查找當前文件夾中的文件(即,其中開始的文件夾而不是其存儲的文件夾)。

試試這個代碼,而不是:

#!/bin/bash 

# Determine folder in which this script is stored 
BASE=$(cd $(dirname "$0") > /dev/null ; pwd) 

while read -r line; do 
mkdir "UNIX/$line" 
done < "$BASE/usernames.lnk"