2014-03-14 134 views
0

需要外殼打開某些文件進行讀取:打開文件失敗

exec 4<$lock 

但是失敗了。錯誤消息是:

Line 196: exec: 4: not found 

有沒有什麼見解?

+0

'$ lock'的值是什麼? – chepner

+0

正如所寫的,如果'$ lock'爲空,你會得到'模棱兩可的重定向'錯誤;如果它引用了一個不存在的文件,則會得到一個適當的「文件未找到」錯誤;如果'$ lock'可讀,你就會成功。你強烈的錯誤表明當你嘗試了'4'之後有一個空格。我不認爲用'IFS'修補可以解決這個問題。因此,如果沒有完整的,可重複的腳本(以及有關您嘗試避免該問題的一些討論),我會將其歸類爲「操作員錯誤」。它偶爾發生在我們所有人身上。 –

+0

鎖是一個具有讀取權限集的文件。我保證你在4到<之間不存在空間。這應該是造成這種情況的另一個問題任何其他見解? – FaceBro

回答

2

看起來像exec正試圖運行一個名爲4的程序。

我可以通過將在4<somefilename,之間的空間重現錯誤消息:

$ (exec 4 <somefilename) 
bash: exec: 4: not found 

看看你的腳本有一個錯位的空間。

+0

我已經解決了這個問題,首先生成一個cmd並對它進行評估。所以我認爲這是一個擴展問題。仍然不知道確切的原因。 – FaceBro