используйте мишень для сохранения файла журнала в подпапке (определенный в переменной)

Входной файл сценария передается как аргумент от командной строки. Я хочу, чтобы файл журнала от мишени был сохранен в том же каталоге, чем входной файл:

Позволяет говорят, что входной файл в "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
задан 29 November 2018 в 19:58

1 ответ

Взгляды чрезмерно сложными.

LOGPATH=$(dirname $1)/arrays.log

должен сделать то же самое, даже в случае, где нет никакого каталога в 1$ (потому что $dirname foobar возвраты .).

1
ответ дан 7 December 2019 в 15:10

Другие вопросы по тегам:

Похожие вопросы: