Вы можете использовать функцию, которая принимает команду в качестве аргументов и tee
выводит (stdout и stderr )в файл журнала.
local_path="~/njn"
log_path_file="test.log"
function log_cmd ()
{
{
"$@"
returncode=$?
if [ "$returncode" -eq 0 ]; then
echo "[successfully executed \"$@\"]"
else
echo "[failed to execute \"$@\", exit code: ${returncode}]"
fi
return $returncode
} 2>&1 | tee -a "$log_path_file"
# return exit code of first command in pipeline
return ${PIPESTATUS[0]}
}
log_cmd ls -l "$local_path"
log_cmd echo "hello world"
в первую очередь эта проблема возникает из-за проблемы с python setuptools, по ошибке или намеренно вы обновляете его, а затем после обновления, я думаю, вы переустанавливаете шесть модулей самостоятельно или одной из библиотек, что произойдет, после чего он не установится правильно обновить по правильному пути, все, что вам нужно, это запустить эту команду, она переместит файл с шестью библиотеками по правильному пути, чтобы другие модули могли его найти
cp /usr/local/lib/python3.6/site-packages/six.py /usr/lib/python3.6/site-packages/