我正在尝试从我的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行尾。
巴普蒂斯特
答案 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和其他位置进行相同的修改。