Shell脚本错误:没有这样的文件或目录

时间:2013-10-21 11:42:06

标签: linux shell unix

我正在尝试从我的USB驱动器运行一个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目录

我得到了一个"没有这样的文件或目录"错误。经过几次尝试,我认为我的问题开始于我宣布我的变量'数据'和' rep_sortie'。你知道我做错了什么吗?我不明白为什么它看不到这个目录。

我检查了我有正确的LF行尾。

巴普蒂斯特

1 个答案:

答案 0 :(得分:1)

/ exe / Data /将搜索在linux filesystem(“/”)的根位置下命名的文件夹,即放置所有文件夹,如root,home,usr,tmp和mnt。并且脚本找不到任何名为“exe”的文件夹,它会报告你得到的错误。总是如果在路径/前缀中,它会转换为Linux文件系统的根目录。

“/ exe / Data”(绝对路径)和“./exe/Data”(相对路径)之间存在差异。我想以后根据你的要求需要一个。 AS:

./ exe / Data将转换为$ {PWD} / exe / Data,这肯定与/ exe / Data不一样。 其中$ PWD将在当前工作目录的前面加上。

应对/exe/TopHat.exe和其他位置进行相同的修改。