2013-10-21 4 views
0

실행 파일을 실행해야하는 USB 드라이브에서 셸 스크립트 파일을 실행하려고합니다. 나는이 나무를 가지고 :셸 스크립트 오류 : 해당 파일이나 디렉터리가 없습니다.

내의 .sh 파일은 다음과 같습니다
USBROOT/ 
    script.sh 
    exe/ 
     myExe.exe 
     Data/ 
      {Several Images} 
     Results/ 
      {Results to be saved} 

(죄송합니다, 코드의 일부 감자가 : 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 

나는 "No such file or directory"오류가 있습니다. 몇 번 시도한 후에, 내 변수 '데이터'및 'rep_sortie'선언 할 때 내 문제가 시작되는 것 같아요. 내가 뭘 잘못하고 있는지 알아? 나는이 디렉토리를 볼 수없는 이유를 이해하지 못한다.

올바른 LF 줄이 있는지 확인했습니다.

티스트

/EXE/데이터
+0

당신은 전체 경로를 사용하고 있습니다 :'/ exe/Data /'와 유사합니다. 상대 :'exe/Data /'등을 사용하는 것이 좋습니다. – fedorqui

+0

><지금 발견 할 수 있습니다! 감사합니다. 전체 스크립트로 시도해 보겠습니다. – baptiste

+0

mkdir 존재하지 않는 경우 또는 디렉토리를 확인한 후 문제를 해결하십시오. 또한 스크립트를 실행하기 전에 set -x를 사용하여 문제를 확인하십시오. – SriniV

답변

1

/루트, 가정, USR, TMP 및 MNT 같은 모든 폴더를 배치 리눅스 파일 시스템 ("/"), 즉의 루트 위치 아래라는 이름의 폴더를 검색합니다. 그리고 스크립트는 "exe"라는 이름의 폴더를 찾지 못합니다. 오류가 발생했을 때이를보고합니다. 경로 /에 접두어가 붙어 있으면 Linux 파일 시스템의 루트로 번역됩니다.

"/ exe/Data"(절대 경로)와 "./exe/Data"(실행 경로)에는 차이가 있습니다. 나는 나중에 하나가 귀하의 요구 사항에 따라 필요하다고 가정합니다. 다음과 같이 :

./exe/Data는 $ {PWD}/exe/Data로 변환되며 이는/exe/Data와 분명히 다르지 않습니다. 여기서 $ PWD는 현재 작업 디렉토리의 접두사입니다.

동일한 수정 사항이 /exe/TopHat.exe 및 기타 위치에 적용됩니다.

관련 문제