脚本的输入文件作为参数从命令行传递。我希望将来自 tee 的日志文件保存在与输入文件相同的目录中:
假设输入文件位于“data/temp/inputfile.txt”
这是给我带来问题的部分:
{
INPUT1=$1
#Save each subdirectory as an element of the array
bkpIFS="$IFS"
IFS='/' read -r -a inputstring <<< $INPUT1
IFS="$bkpIFS"
#Get number of levels
PATHLENGTH=${#inputstring[@]}
if [ PATHLENGTH > 1 ]
then
#Delete the input file from path
FILEONLY=${inputstring[-1]}
INPUTFOLDER=${INPUT1/%$FILEONLY/}
#Name the log file
LOGFILE="arrays.log"
LOGPATH="$INPUTFOLDER$LOGFILE"
else
#If input file is at working directory
LOGPATH="arrays.log"
fi
# Here goes the main script...
printf "\nDone!\n"
} | tee $LOGPATH
我只是在工作目录中得到一个名为“1”的空文件。当然,如果我在最后一行写:
} | tee arrays.log
一切顺利,但我需要将每个日志文件放在与输入文件相同的位置。
看起来过于复杂。
应该做同样的事情,即使在 $1 中没有目录的情况下(因为
$dirname foobar
返回.
)。