Как пропустить первую строку моего вывода?

Немного поздно, но я тоже только что наткнулся на эту проблему.

Проблема в том, что x0vncserver нуждается в сеансе X для входа в систему для вашего пользователя, поэтому вы должны обеспечить две вещи:

  1. Ваш пользователь должен быть настроен для автоматического входа в систему

  2. Поместите спящий режим в команду ExecStart, чтобы рабочий стол мог запуститься и войти в систему до того, как служба x0vncserverпопытается запуститься:

    ExecStart=/usr/bin/sh -c 'sleep 3 && /usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home//.vnc/passwd &'

Сон помог мне, и теперь мой x0vncработает.

10
11.01.2020, 06:00
3 ответа

На самом деле есть несколько способов добиться одного и того же результата. Еще один способ — передать вывод команды последовательности в sed, как показано ниже

squeue -u user_name | sed '1d' | wc -l

2
27.01.2020, 19:59

Есть много способов сделать это, первый, о котором я подумал, это:

squeue -u user_name | tail -n +2 | wc -l

Из справочной страницы дляtail:

-n, --lines=[+]NUM            output the last NUM lines, instead of the last 10;
                              or use -n +NUM to output starting with line NUM

Итак, вам -n +2 следует пропустить первую строку.

Вы также можете использовать форму сортировки хвоста:tail +2

30
27.01.2020, 19:59

Просто так. Вы можете вычесть 1 из вывода wc

echo $(( $(squeue -u user_name|wc -l)-1 ))

или

squeue -u user_name|wc -l|awk '{print $0-1}'

Когда вы используете awk, вы можете подсчитывать строки с помощью awk и избегать использования wc

squeue -u user_name|awk 'END{print NR-1}'

END означает, что следующий блок выполняется после того, как все строки будут прочитаны, а NR означает количество строк, прочитанных до сих пор.

5
27.01.2020, 19:59

Теги

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