2013-10-21 249 views
0

我想從我的USB驅動器運行一個shell腳本文件,它必須運行一個可執行文件。我得到這個樹:Shell腳本錯誤:沒有這樣的文件或目錄

USBROOT/ 
    script.sh 
    exe/ 
     myExe.exe 
     Data/ 
      {Several Images} 
     Results/ 
      {Results to be saved} 

我sh文件看起來像這樣(對不起,沒有在代碼中的一些法語:P):

#!/bin/sh 
data="/exe/Data/" 
exe="/exe/TopHat.exe" 
rep_sortie="/exe/Results/" 
fichier_sortie="GPU_Vivante_iMx6_linux.txt" 
# 
echo "Temps d'exécution du TopHat en secondes" >> $fichier_sortie 
echo "Erosion G, Erosion L, Dilatation G, Dilatation L, Reconstruction V, Reconstruction AV, DT" >> $fichier_sortie 
# 
list_image=`ls ${data}U1*.jpg` 
# 
for f in $list_image 
do 
image=${f##*/} 
#echo $image >> $fichier_sortie 
$exe $f ${rep_sortie}${image} >> $fichier_sortie 
done 
# 
list_image=`ls ${data}U2*.jpg` 
# 
for f in $list_image 
do 
image=${f##*/} 
#echo $image >> $fichier_sortie 
$exe $f ${rep_sortie}${image} >> $fichier_sortie 
done 

但是當我用命令運行它行

sh script.sh 

從USBROOT目錄我得到了「沒有這樣的文件或目錄」錯誤。經過幾次嘗試後,我認爲我的問題從聲明我的變量'data'和'rep_sortie'開始。你知道我做錯了什麼嗎?我不明白爲什麼它不能看到這個目錄。

我檢查了我有LF的正確結束。

巴普蒂斯特

+0

您正在使用完整路徑:'/ exe/Data /'等。你最好使用relative:'exe/Data /'等等。 – fedorqui

+0

><它似乎現在可以找到它!謝謝,我會嘗試使用我的整個腳本。 – baptiste

+0

mkdir如果不存在或在繼續查明問題之前嘗試檢查目錄是否存在。也可以在運行腳本前嘗試使用set -x來查看發生的情況 – SriniV

回答

1

/EXE /數據/將搜索下Linux文件系統(「/」),即其中相同的根,家庭,USR,tmp和MNT所有文件夾被放置的根位置命名的文件夾。並且腳本不會找到任何名稱爲「exe」的文件夾,它會報告你得到的錯誤。總而言之,如果在路徑中/是前綴,它將轉換爲Linux文件系統的根目錄。

「/ exe/Data」(絕對路徑)和「./exe/Data」(相對路徑)之間存在差異。我想以後需要根據您的要求。 AS:

./exe/Data將轉換爲$ {PWD}/exe/Data,它肯定不會與/ exe/Data相同。 其中$ PWD將作爲當前工作目錄的前綴。

應對/exe/TopHat.exe和其他位置進行相同的修改。

相關問題