Вы можете использовать что-то вроде этого:
$(basename $0) && exit
$(basename $0) создаст новый экземпляр текущего скрипта, а exit выйдет из текущего экземпляра скрипта.
Вот тестовый скрипт, в котором подчеркивается описанный выше метод:
#!/bin/bash
if ! [[ $count =~ ^[0-9]+$ ]] ; then
export count=0
fi
echo $count
if [ $count -le 10 ]; then
count=$(echo "$count+1" | bc)
./$(basename $0) && exit #this will run if started from the same folder
fi
echo "This will be printed only when the tenth instance of script is reached"
Если вы не используете export count=0 (которые делают count как переменную среды) и используют только (которые делают cont локальной переменной скрипта), тогда скрипт никогда не остановится.
Хорошо. Итак, я прошел через это и временно решил проблему, решительно понизив мой python
apt-get install -y \
python3.4=3.4.0-2ubuntu1.1 \
python3.4-minimal=3.4.0-2ubuntu1.1 \
libpython3.4-stdlib=3.4.0-2ubuntu1.1 \
libpython3.4-minimal=3.4.0-2ubuntu1.1
. Редактирование: после этого переустановите stdlib, поскольку он пропускает некоторые библиотеки. Удаление python3 может удалить некоторые пакеты среды рабочего стола, в этом случае переустановите среду рабочего стола.
После этого у меня были некоторые проблемы с lightdm. Перед удалением распечатайте удаленные пакеты и переустановите их с помощью нового python 3