No hay una prueba "in" en bash, pero hay una prueba de expresiones regulares (no en bourne):
if [[ $1 =~ ^(cat|dog|mouse)$ ]]; then
echo "dollar 1 is either a cat or a dog or a mouse"
fi
Y generalmente escrito usando una variable (menos problemas con las comillas):
regex='^(cat|dog|mouse)$'
if [[ $1 =~ $regex ]]; then
echo "dollar 1 is either a cat or a dog or a mouse"
fi
Para un shell Bourne más antiguo, debe usar una coincidencia de mayúsculas y minúsculas:
case $1 in
cat|dog|mouse) echo "dollar 1 is either a cat or a dog or a mouse";;
esac
E:Could not get lock /var/lib/dpkg/lock - open (11: Resources temporarily unavailable)
Это сообщение указывает на то, что открыта другая программа для установки/удаления программного обеспечения. Вы должны найти это программное обеспечение и закрыть его, а затем перезагрузить систему.
E:Unable to lock the administration directory (var/lib/dpkg/) is another process using it ?
Одним из решений этой ошибки является удаление блокировки, но это крайняя мера и не рекомендуется . Альтернативы следующие :Блокировка ставится, когда процесс apt запущен, и снимается, когда процесс завершается. Если есть блокировка без видимого запущенного процесса, это может означать, что процесс по какой-то причине завис.Попробуйте эту команду:
ps aux | grep apt
, который будет перехватывать процессы, содержащие как минимум слово apt. Если вы видите процесс apt -get или процесс aptitude, который выглядит зависшим, вы можете попробовать
kill <apt_process_ID>
и если это не сработает, попробуйте
kill -9 <apt_process_ID>
Это должно убить процесс и снять блокировку. Уничтожение процесса apt или aptitude безвредно, если только он не находится в процессе установки пакета. В любом случае, если процесс застрял, у вас, вероятно, нет другого выбора, кроме как убить его.
Непосредственное уничтожение процесса dpkg, если он присутствует, не является хорошей идеей, потому что, если dpkg активен, он, вероятно, манипулирует базой данных пакетов, и его завершение может оставить базу данных пакетов в несогласованном состоянии; то есть испорченный.
Уничтожение процесса apt -get или aptitude, как правило, намного безопаснее.
Теперь, если предыдущие шаги не увенчались успехом, вам придется снова снять блокировку (. Это крайняя мера и не рекомендуется ).
Вы можете удалить файл блокировки с помощью следующей команды:
sudo rm /var/lib/apt/lists/lock
Вам также может понадобиться удалить файл блокировки в каталоге кеша
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
После этого попробуйте снова открыть диспетчер пакетов Synaptic.