Я пытаюсь отладить часть tar моего скрипта bash. Когда я использую кавычки вокруг имен файлов, tar просто не видит файл.
Я пытался отобразить строку tar в файл, и она работает. Но при запуске скрипта файл не найден
#!/bin/bash
i=0
code=0
paths=""
fatal_check() {
if [[ $? != 0 ]]; then
exit 2
elif [[ $1 != "-z" && $1 != "-h" && $1 != "" ]]; then
echo $1
echo "unknown options"
exit 2
elif [[ $2 != "-z" && $2 != "-h" && $2 != "" ]]; then
echo $2
echo "unknown options"
exit 2
fi
}
fatal_check $1 $2
if [[ $1 == "-h" || $2 == "-h" ]]; then
echo ""
echo "bash script to infer file types and gather more information about them"
echo ""
echo "OPTIONS"
echo -e "-h \t shows this help"
echo -e "-z \t zips all regular files"
exit 0
fi
while read stdin; do
if [[ $stdin == "PATH "* ]]; then
path=${stdin:5}
if [[ -L "$path" ]]; then
echo LINK "'$path'" "'$(readlink "$path")'"; fatal_check
elif [[ -d "$path" ]]; then
echo DIR "'$path'"
elif [[ -f "$path" ]]; then
wc=$(wc -l < "$path"); fatal_check
ln=$(head -n 1 "$path"); fatal_check
echo FILE "'$path'" $wc "'$ln'"
if [[ $1 == "-z" || $2 == "-z" ]]; then
paths="${paths}'${path}' "
fi
else
>&2 echo ERROR "'$path'"
code=1
fi
fi
done
if [[ $paths != "" ]]; then
tar czf output.tgz $paths; fatal_check
fi
exit $code
Это то, что tar выбрасывает на меня. Еще раз, когда я на самом деле выводю ту же строку в файл и запускаю ее как команду, она работает нормально.
tar: './test': Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors