Вам нужно загрузить и переустановить пакет linux-заголовков-3.5.0-54
. Проблема здесь в том, что пакет доступен только в точном виде, на который ваши исходные тексты больше не ссылаются. Для этого я бы порекомендовал загрузить пакет вручную вместо того, чтобы добавлять точное хранилище и переустанавливать пакет с помощью dpkg, чтобы затем продолжить удаление и продолжить обновление:
wget http://security.ubuntu.com/ubuntu/pool/main/l/linux-lts-quantal/linux-headers-3.5.0-54_3.5.0-54.81~precise1_all.deb
sudo dpkg -i linux-headers-3.5.0-54_3.5.0-54.81~precise1_all.deb
sudo apt-get purge linux-headers-3.5.0-54
sudo do-release-upgrade
Для всех остальных случаев должно быть достаточно просто:
sudo apt-get --reinstall install package-name
.
Содержит ли сценарий команду set -u
?
Это означает, что
Считать неустановленные переменные и параметры , кроме специальных параметров "@" и "*" , ошибкой при выполнении раскрытия параметров. Если выполняется попытка раскрытия неустановленной переменной или параметра, оболочка печатает сообщение об ошибке и, если не интерактивно, завершает работу с ненулевым статусом.
Другими словами, если $ BAR_EXT
не установлен, что-то вроде
BAR_FILE="$BAR_FILE$BAR_EXT"
завершится ошибкой. Команда
BAR_EXT=${BAR_EXT-}
явно установит $ BAR_EXT
в пустую строку
, если она вообще не определена, тем самым избегая такой ошибки.
$ {Переменная -}
расширяется до значения переменной
, если он установлен, и в пустую строку в противном случае. Обычно это то, что прямое $ переменная
. Однако, когда параметр установлено -u
( Набор -o nounset
) на $ ПЕРЕМЕННОГО
вызывает ошибку, когда переменная не установлена, тогда как $ {Переменная -}
все еще создает пустую строку. Так $ {VARIABLE -}
означает «Я собирался это приводит к пустой строке, даже если переменная не установлена», в то время как $ VARIABLE
может означать, что или может означать: «Я предназначено Переменная для установки ".
С помощью awk
:
awk '{if($0=="click"){getline n;printf "%s(%s)\n", $0, n}else{print}}' file
Если строка соответствует щелкните
, загрузите следующую строку в переменную с именем n
, а затем распечатайте требуемый формат вывода.
Edit:
Если существует переменное количество нескольких строк и требуется объединить их до тех пор, пока не появится пустая строка, используйте следующую команду:
awk '{if($0=="click"){getline n; printf "%s(%s", $0, n;
while($0!=""){printf ",%s", $0; getline};
printf ")\n\n", x}else{print}}' file
Она печатает строки, разделенные запятыми, пока не найдет пустую строку.
-121--133211-У меня был тот же вопрос, что и у вас, но для обычного пользователя. Допустим, я хочу запустить firefox с помощью учетной записи пользователя foo. Я вошел в систему как бар:
[bar@localhost ~]$ sudo -u foo -H firefox
К сожалению, эта команда не удалась с той же ошибкой, что и в вопросе (т.е. не указан ни один протокол и не может открыть дисплей)
Моим решением было просто добавить пользователя foo в список авторизованного доступа к серверу X.
xhost si:localuser:foo
И тогда я смог запустить Firefox (и другое приложение X) с помощью sudo
и пользователя foo.
Фон : В окне X имеется архитектура клиент/сервер. При запуске приложения запрашивается разрешение X-сервера на его отображение. По умолчанию, как только вы открываете сеанс (вы графически входите в систему), вам (вашему пользователю), очевидно, разрешено общаться с сервером и отображать приложения. Другие пользователи не имеют этого разрешения, если его не указать. xhost
- это средство для управления списком разрешений. si
указывает на то, что правило является серверным, и уполномочивает локального пользователя foo
отображать приложения. X Window является очень мощным в этом отношении, и вы можете отображать удаленные приложения локально, играя с переменной среды ДИСПЛЕЕВ
и xhost
(но не ограничиваясь ими). В более старые времена, когда люди набирали xhost +
и неявно позволяли всем использовать свою X-сессию, можно было отображать приложение на своем экране для приколов; -) не столько сейчас, сколько люди все меньше используют X Window клиент/серверную архитектуру (по крайней мере для того, что я наблюдаю за последние 10 лет).
PS: Я сделал это, чтобы запустить Firefox в своего рода «тюрьме» (чтобы избежать уязвимости, как для pdf.js в будущем). Но я быстро выяснил, что вызов Firefox через sudo не позволит ему получить доступ ни к аудио, ни к видеоаппаратуре. Но есть один парень, который ясно объясняет , как активировать аппаратное ускорение видео и аудио при вызове Firefox через sudo . YMMV с этими инструкциями, например, мне все еще отказано в разрешении на аудио, но видео нормально (протестировано на Fedora 22 с SELinux ON).
-121--11008-Проверьте справочную страницу для последней оболочки Борна:
http://schillix.sourceforge.net/man/man1/bosh.1.html
и найдите раздел «Подстановка параметров», который в настоящее время находится на странице 8. Две страницы вниз, есть таблица, которая объясняет все возможные расширения.
Оболочка Борна поддерживает в подстановке параметров не только '-'.