![쉘 스크립트를 사용하여 exe를 실행하는 방법은 무엇입니까? [폐쇄]](https://linux55.com/image/146842/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20exe%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
2개의 .csv 파일을 입력으로 사용하는 exe가 있습니다. 다음과 같이:
cSplittinglines.exe srcdir\file.csv destdir\file.csv
스크립트가 실행되는 디렉터리가 exe 위치에 영향을 주지 않도록 쉘 스크립트를 사용하여 이 .exe를 실행하려면 어떻게 해야 합니까? 일명 exe 경로를 하드코딩하지 마세요. 아래는 제가 쓰고 있는 스크립트입니다.
#!/bin/sh
STARTTIME=`date '+%Y%m%d.%H%M%S'`
LOGFILE=${ERRDIR}/${0}.${STARTTIME}
SplitDir=$1
LyxlamDir=$2
echolog ()
{
echo $*
echo $* >> ${LOGFILE}
}
for file in "${SplitDir}"/*; do
if [ -d "$file" ]; then continue; fi
extension=${file##*.}
if [ "$extension" = "csv" ]
then
cSplittingLines.exe "$file" "${LyxlamDir}"
mv "$file" "${SplitDir}/old"
fi
done
답변1
exe를 $PATH에 넣으세요(이것이 바로 그 용도입니다)(Windows의 경우 %PATH%).
mv cSplittingLines.exe /bin/
또는
echo "export PATH=\"\$PATH:/path/to/exe\"" >> ~/.bashrc
반품https://www.shellcheck.net설명하다;
SC2006: Use $(...) notation instead of legacy backticked `...`.
SC2086: Double quote to prevent globbing and word splitting.