
入力として 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.