Команда Python в bash не находит флаг -c

Лучшим способом устранения этой проблемы может быть переустановка Ubuntu. (Вы должны сначала создать резервную копию своих документов, даже если вы планируете переустанавливать без переформатирования.)

Если вы хотите попытаться исправить систему на месте, то посмотрите файлы журналов менеджера пакетов, чтобы узнать, что пакеты были удалены и переустановлены:

/var/log/dpkg.log (полная информация, но трудно читать) /var/log/apt/history.log (сокращенно укажет вам, что каждый пакет удален или иным образом изменен - ​​скорее всего, ваш лучший выбор) (если вы удалили пакеты с помощью apt-get в терминале, это должно показать то, что вы видели, включая списки того, какие пакеты будут удалены - так что это может быть лучшим способом)

Переустановка только пакеты, имена которых начинаются с jpeg, не будут работать, потому что многие (почти наверняка большинство) удаленных пакетов были удалены, потому что они полагались на эти пакеты.

В будущем я рекомендую внимательно проверяя последствия удаления пакета. Если вы работаете из командной строки, вы всегда будете уведомлены. (Если вы не используете опцию -y, в этом случае обычно нет. Я рекомендую не использовать эту опцию, если вы не знаете, что делаете, особенно для удаления.)

Один из способов проверить последствия операции управления пакетами, выполненной с помощью apt-get, без риска их возникновения, заключается в том, чтобы запустить apt-get -s вместо sudo apt-get. Это просто имитирует указанное действие и сообщает о том, какие пакеты будут затронуты как результат и как.

1
задан 21 May 2014 в 18:44

2 ответа

Это из-за этой строки:

Get_wPassword=python -c 'import keyring; keyring.get_password("WinMount", wUsername)'

-c интерпретируется как команда. Напишите его следующим образом:

Get_wPassword=$(python -c 'import keyring; keyring.get_password("WinMount", wUsername)')

EDIT: для проблемы с переменной bash. Вы можете использовать os.getenv для доступа к переменным среды из Python:

export wUsername
export wPassword
Get_wPassword=$(python -c "import keyring; import os; \
keyring.get_password("WinMount", os.getenv('wUsername'))")
unset wPassword
4
ответ дан 24 May 2018 в 07:31
  • 1
    +1 для os.getenv, это будет работать, даже если «wUsername» имеет в нем кавычки. – daboross 22 May 2014 в 01:52

Линия

Get_wPassword=python -c 'import keyring; keyring.get_password("WinMount", wUsername)'

означает «Запустить -c с $ Get_wPassword, установленным на python"

Чтобы просто установить $Get_wPassword для всей команды, используйте [ ! d2]

Get_wPassword='python -c \'import keyring; keyring.get_password("WinMount", wUsername)\''
2
ответ дан 24 May 2018 в 07:31

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

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