Открытие файла с программой в фоне от оболочки

"Дюйм/с сетевой маски", Вы, кажется, подразумеваете, что вещи со всеми битами набора группировались слева. Существует только 32 из них от/0 до/32. Вы могли просто перечислить их в grep операторе (или, лучше, в файле Вы передаете grep -f).

Этот подход утомителен, но легок;

^0\.0\.0\.0$
^128\.0\.0\.0$
^192\.0\.0\.0$
^224\.0\.0\.0$
⋮

Начиная с на самом деле двоичный шаблон, который мы ищем, Вы могли преобразовать его назад в число, затем сделать некоторое битовое жонглирование на нем, чтобы подтвердить, что это соответствует шаблону. Это было бы фактической задачей программирования, тем не менее, не что-то, что Вы бросите вместе с grep.

Хотя можно сделать что-то, соглашаются до н.э. Вот то, как протестировать $ip:

(
    echo 'obase=2';
    echo "$ip" | sed -e 's/\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)/\1*(256^3)+\2*(256^2)+\3*256+\4/'
) bc | grep -q '^1*0*$' && echo yes || echo no

При разрушении его эхо говорит до н.э для вывода в двоичном файле. Затем это sed строка превращает IP-адрес в выражение, для вычислений его числового значения. 255.255.255.0 становится 255*(256^3)+255*(256^2)+255*256+0. Так bc видит:

obase=2
255*(256^3)+255*(256^2)+255*256+0

Это распечатывает 11111111111111111111111100000000, который затем проверяется для соответствия шаблону ^1*0*$ с grep.

Если у Вас будет утилита для преобразования IP в число, то это удалит большую часть сложности выше. Все еще, вероятно, будет медленнее, чем grep со списком шаблонов, все же.

4
10.04.2014, 21:19
2 ответа
[1133014]Иногда, когда вы запускаете программу, она распечатывает какое-то сообщение. Если вы запускаете ее в фоновом режиме, программа может блокироваться до тех пор, пока вы не вернете ее на передний план, чтобы она могла вывести свое сообщение. Решение заключается в перенаправлении stdout и stderr так, чтобы программа могла продолжать работу в фоновом режиме. Один из способов сделать это:

Вышеуказанное создает файл в вашем домашнем каталоге с любым сообщением [1133461]evince[1133462], которое вы хотите отобразить.

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

После выполнения любой из вышеперечисленных команд оболочка должна выдать сообщение типа

1234[1133464], а затем должна появиться подсказка оболочки. Как предполагает Graeme, если приглашение оболочки не появится, попробуйте нажать клавишу enter еще раз.[1133021].

4
27.01.2020, 20:49
[12219]CTRL+Z[12220], который открывает программу, приостанавливает ее, а затем создает ее фон. [12221] Или: [12222] откроет [1132702]evince[1132703] в [1132704](подоболочке) [1132705], а фоном [1132706](подоболочке) [1132707]. Немного странно, что просто:[12223]не работает, потому что работает для меня.[12224]Вы можете захотеть:[12225]И проверить параметры управления вашим заданием. Я рекомендую:[12226]если вы еще не используете его. Сделайте:[12227]для дополнительной информации. Или посмотрите мой другой ответ [1132708]здесь[1132709].[1132359].
5
27.01.2020, 20:49

Теги

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